JQuery отправить форму с PHP - PullRequest
       17

JQuery отправить форму с PHP

0 голосов
/ 02 февраля 2010

Мне нужна помощь с тем, что, как я думал, было бы простой проблемой отправки формы с Jquery, но я сталкиваюсь с проблемами.

У меня есть форма #isting_step_1, в которой пользователь сначала выбирает категорию из выпадающего списка. Когда категория выбрана, если пользователь нажимает «далее», раскрывается раскрывающийся список подкатегории. Когда выбрана категория и подкатегория, нажатие кнопки «Далее» приведет их к шагу 2 процесса с использованием перенаправления. При отправке форма перезагружает ту же страницу, используя $ _SERVER ['PHP_SELF'].

Я хочу автоматически отправить форму, поэтому не нужно нажимать кнопку «Далее», чтобы открыть подкатегории. Я пытаюсь сделать это на событии onchange, используя JQuery, но следующий код не работает.

$('#item_category').change(function(){
   $('#listing_step_1').submit();
});

Буду признателен за любую помощь в этом, поскольку я новичок в формировании представления с использованием JQuery и AJAX. Вручную все работает нормально, то есть, нажимая кнопку страницы и обновляя страницу PHP. Я думал, что просто отправив форму в экземпляре onchange, она перезагрузит и выполнит необходимые действия, но это не так.

Код формы:

<form method="post" name="listing_step_1" id="listing_step_1" action="<?php $_SERVER['PHP_SELF'] ?>" enctype="multipart/form-data" <?php if($errormessage != ""){ echo ' style="margin-top: 30px"';}?>>
  <div class="formField fullwidth">
    <label for="item_category">Category *</label>
    <select id="item_category" name="item_category">
      <option value="0">Select category...</option>
      <?php $cd = new CategoryListing("<option_credits>", "</option>"); ?>
    </select>
  </div>
  <div class="formField fullwidth">
    <label for="item_subcategory">Subcategory*</label>
    <?php if($dropdownlist != "") { ?>
    <select id="item_subcategory" name="item_subcategory">
      <?php echo $dropdownlist; ?>
    </select>
    <?php } else { ?>
    <select id="item_subcategory" name="item_subcategory" disabled="true">
      <option value="0">Select subcategory...</option>
    </select>
    <?php } ?>
  </div>
  <input type="submit" value="Next" id="submit" name="submit" style="width: 100px;" />
</form>

Форма отправки:

if(isset($_POST['submit'])){
 if($_POST['item_category'] != 0){
  $dropdownlist = CategoryListing::getSubCategoryDropdown($_POST['item_category']);
 } 
 else {
  $errormessage = "Please select a category";
 }
}

Jquery:

$(document).ready(function(){
       $('#item_category').change(function(){
      this.form.submit();
     });
});

Ответы [ 2 ]

1 голос
/ 02 февраля 2010

Попробуйте вместо этого:

$(function() {
  $('#item_category').change(function(){
     this.form.submit();
  });
});
0 голосов
/ 02 февраля 2010

в своем описании вы говорите:

У меня есть форма, #isting_stage_1, в который пользователь сначала выбирает c ...

тогда в коде вы говорите:

$('#item_category').change(function(){
   $('#listing_step_1').submit();
});

Я полагаю, вы просто используете неправильный селектор ... измените свой код так:

$('#item_category').change(function(){
   $('#listing_stage_1').submit();
});
...