0

我需要帮助来解决我认为 Jquery 的简单表单提交问题,但我遇到了问题。

我有一个表单,#listing_step_1,用户首先从下拉列表中选择一个类别。选择类别后,如果用户单击“下一步”,则会显示子类别下拉列表。当同时选择一个类别和子类别时,单击下一步将使用重定向将它们带到流程的第 2 步。提交时,表单正在使用 $_SERVER['PHP_SELF'] 重新加载同一页面。

我想自动提交表单,因此不需要单击下一步来显示子类别。我正在尝试使用 JQuery 对 onchange 事件执行此操作,但以下代码不起作用。

$('#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";
 }
}

查询:

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

2 回答 2

1

试试这个:

$(function() {
  $('#item_category').change(function(){
     this.form.submit();
  });
});
于 2010-02-02T04:24:37.790 回答
0

在您的描述中,您说:

我有一个表单,#listing_stage_1,用户首先在其中选择一个 c...

然后在代码中你说:

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

我想您只是使用了错误的选择器...将您的代码更改为:

$('#item_category').change(function(){
   $('#listing_stage_1').submit();
});
于 2010-02-02T04:27:24.837 回答