@tory_kuzya

Yii1 Не работает serrialize() формы, почему?

Не срабатывает отправка формы.
Структура:
<form action="#" method="post" class="answer-form form-horizontal form-bordered" id="edit<?=$request->id?>">
                            <div class="clearfix">
                                <!-- Правая колонка заявки-->
                                <div class="col-sm-12 col-md-5 any-tariff">
                                    ...
                                </div>
                                <!-- Левая колонка  -->
                                <div class="col-sm-12 col-md-7 extended-tariff">
                                    ...
                                </div>
                                <!-- Блок, скрывающий контакты от пользователей с базовым тарифом -->
                                <div class="col-sm-12 col-md-7 change-the-tariff <?if(!$rules):?>change-visible<?endif;?>">
                                    ...
                                </div>
                                
                            <div class="form-group answer">
                                <label class="col-sm-12 col-md-8 control-label">
                                    <label class="col-sm-3 control-label">Кол-во машин:</label>
                                    <div class="col-sm-2">
                                        <input type="number" class="form-control" id="trucks_count" min="1" step="1" maxlength="2" value="1" onkeyup="return proverka(this);" onchange="return proverka(this);" name="trucks_count">
                                    </div>
                                    <label class="col-sm-3 control-label">Цена, руб:</label>
                                    <div class="col-sm-2">
                                        <input  type="text" class="form-control" value="<?=$request->price?>" id="price" onkeyup="return proverkaDecimal(this);" onchange="return proverkaDecimal(this);" name="price">
                                    </div>
                                </label>
                                <div class="col-sm-12 col-md-4">
                                    <button style="float: right;" type="button" class="btn btn-success saveRequest" id="saveRequest<?=$request->id?>">Ответить</button>
                                </div>
                            </div>
                        </form>

и таких форм на странице целый список

$('.oldRows').on('click', '.saveRequest', function(){
        $.post("<?=$this->createUrl('/ajax/ansferToRequestShipping');?>",{data:$("#edit<?=$request->id?>").serialize()},function(data){
            $("#status").html(data);
        });
    });

Так вот, интересует вопрос, как видоизменить строку:
$.post("<?=$this->createUrl('/ajax/ansferToRequestShipping');?>",{data:$("#edit<?=$request->id?>").serialize()}

Чтоб считывались значения value полей #trucks_count и #price, установленные по умолчанию (не всегда пользователь будет их вводить, может его устроят выставленные по умолчанию)?
Может как-то разбить форму на 2 переменные, типа:
var a = $('#trucks_count').val();
var b = $('#price').val();

тогда, как их вписать в имеющуюся строку?
{data:$("#edit<?=$request->id?>").serialize()}

з.ы.: если считывать значение value, не будет ли проблем с отправкой формы при вводе значений вручную в поля?
  • Вопрос задан
  • 164 просмотра
Решения вопроса 1
@Cage
$.post("<?=$this->createUrl('/ajax/ansferToRequestShipping');?>",$("#edit<?=$request->id?>").serialize()...

значения по умолчанию будут считываться
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
По идее должны эти данные туда попадать. Проверьте, что в консоле будет, если сделать так:
$('.oldRows').on('click', '.saveRequest', function(){
        var data = $("#edit<?=$request->id?>").serialize();
        console.log(data);
});
Ответ написан
Комментировать
@tory_kuzya Автор вопроса
Решение такое:
$(".saveRequest").on('click',function (){
        var obj = $(this).parent().parent();
        $.post("<?=$this->createUrl('/ajax/ansferToRequestShipping');?>",{data:obj.find('input').serialize()},function(data){
            obj.next('.clearfix').find('h4').html(data);
        });
    });

Я заметила, что в dom-дереве
<form action="#" method="post" class="answer-form form-horizontal form-bordered" id="edit<?=$request->id?>">

закрывается сразу после открытия и все вложенные элементы и поля получаются соседними элементами. Причину не нашла.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 11:53
3000 руб./за проект
22 нояб. 2024, в 11:51
20000 руб./за проект
22 нояб. 2024, в 11:50
200000 руб./за проект