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";
 }
}

Jクエリ:

$(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 に答える