2016-07-13 12 views
0

私はサーバーサイド言語としてPHPを使用し、AjaxでJQueryを使用して依存セレクトボックスフォームを作成しています。私は2番目の選択ボックスにオプションとして表示されていないので、応答テキストの取得に問題があります。動的依存セレクトボックス(PHP + JQuery + AJAX)

P.S.私はAjaxが初めてで、私の問題を助けるビデオはありません。

HTML & PHP:

<center><form method="post" action="php/functions.php" id="catForm"> 
<select name="catSelect" class="catSelect" name="category"> 
<option value='null' default>اختر الفئة:</option> 
<?php 
     $selectCategories = mysqli_query($connectionDB, "SELECT * FROM categories"); 

     while($categoriesDisplay = mysqli_fetch_array($selectCategories)){ 
    echo '<option value="'.$categoriesDisplay['id'].'">'.$categoriesDisplay['category'].'</option>'; 
     } 
?> 
</select><br/><br/> 

<select name="subCatSelect" class="subCatSelect"> 
<option value="null" default>اختر النوع:</option> 
<?php 
$catSelectVal = $_POST['catSelect']; 
$selectSubCat = mysqli_query($connectionDB, "SELECT * FROM sub_categories WHERE id LIKE '$catSelectVal'"); 

while($subCatDisplay = mysqli_fetch_array($selectSubCat)){ 
    echo '<option value="'.$subCatDisplay['id'].'">'.$subCatDisplay['subCategory'].'</option>'; 
} 

?> 
</select><br/> 
<h1></h1> 
<input type="submit" value="اختر" class="submitForm" /><br/> 
</form></center> 

のjQueryコード:

$(document).ready(function(){ 
    $('.catSelect').change(function(){ 
     var changeURL = $('#catForm').attr("action"); 
     var data = $('.catSelect').val(); 
     $.post(changeURL, {category : data}, function(subCategory){ 
      $('.subCatSelect').append(subCategory); 
     }); 
    }); 
}); 

第2の選択ボックスのオプションを得る上で動作するはずコード:

$catSelectVal = $_POST['catSelect']; 
$selectSubCat = mysqli_query($connectionDB, "SELECT * FROM sub_categories WHERE id LIKE '$catSelectVal'"); 

while($subCatDisplay = mysqli_fetch_array($selectSubCat)){ 
    echo '<option value="'.$subCatDisplay['id'].'">'.$subCatDisplay['subCategory'].'</option>'; 
} 
+0

ブラウザjsデバッガを使用してデバッグを行いましたか?特に、この行 'var data = $( '。catSelect')。val();' – RiggsFolly

+0

PHPスクリプトの 'print_r($ _ POST);'はおそらく別のエラーを特定するでしょう – RiggsFolly

+0

これはhttp:// stackoverflow .com/questions/2780566/get-selected-of-a-dropdowns-item-using-jquery – RiggsFolly

答えて

0

私は可能性があり間違っていますが、私はあなたがAjaxリクエストで'catSelect'を送ったとは思わない。むしろ、送ったcategorydataの値は'catSelect'

です。したがって、$catSelectVal = $_POST['catSelect'];を検索すると何も見つかりません。

代わりにしてみてください。これが事実であるかない場合はprint_r($_POST);あなたが瞬時に表示されます場合

$catSelectVal = $_POST['category'];はよう@RiggsFolly、言及しました。

+0

私はそれをしました、それは今働きます。しかし私の結果は、 "カテゴリ" - > "サブカテゴリ1、サブカテゴリ2、サブカテゴリ1、サブカテゴリ2"のように重複しています。 – Khalid

+0

私はその周りを歩こうとしており、ビデオを見て、いくつかのコードを見ました。まだ何も助けてくれないようです。 – Khalid

+0

私はここで何を意味するのかは100%は確信していませんが、キーに問題があると仮定すると、おそらく 'mysqli_fetch_array'の代わりに' mysqli_fetch_assoc'を試してみてください。 –

関連する問題