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";
}
}
Jクエリ:
$(document).ready(function(){
$('#item_category').change(function(){
this.form.submit();
});
});