問題のドロップダウンはsubCategoryと呼ばれ、そのコンテンツは、onchangeイベントがajaxリクエストをトリガーしている別のドロップダウンカテゴリを選択することで入力されます。
問題は、サブカテゴリのコンテンツが期待どおりに入力(表示)され、サブカテゴリのドロップダウンでそれらを表示して選択できる場合でも、php postを実行すると、最初のオプションの値しか取得でき<option value="subCategory1">Select a subcategory</option>
ないことです。他の要素を選択します。
たぶん、domは更新されませんが、私にはわかりません。
$_REQUEST
送信直後のPHPprint_r
Array ( [act] => additem [category] => 200381 [subCategory] => subCategory )
HTML(編集済み)
<form id="additemform" action="add-item.php?act=additem" method="post" enctype='multipart/form-data'>
<div id="section-category">
<select id="category" class="category" name="category">
<option value="category1">Select a category</option>
{html_options values=$cat_id_array options=$cat_names_array selected=$smarty.session.additem_category}
</select>
<p class="test" id="boxCity">
<select id="subCategory" class="subCategory" name="subCategory">
<option value="subCategory1">Select a subcategory</option>
{html_options options=$smarty.session.subcategories selected=$smarty.session.additem_subcategory}
</select>
</p>
</div>
<!--/#section-category-->
<div class="bottom-area">
<input id="submit-addItem" type="button" value="Add my item" />
</div>
</form>
ページソース:
<div id="section-category">
<select id="category" class="category" name="category">
<option value="category1">Select a category</option>
<option value="200381" selected="selected">Antiques</option>
<option value="200841" >Other cat</option>
</select>
<p class="test" id="boxCity">
<select id="subCategory" class="subCategory" name="subCategory">
<option value="subCategory1">Select a subcategory</option>
<option value="23430118">Digital Art</option>
<option value="6643435">Photographic Images</option>
</select>
</p>
</div><!--/#section-category-->
JQUERY
$(function () {
//$("#subCategory").selectbox();
$("#section-category #category").selectbox({
onChange: function () {
var id=$(this).val();
var dataString = 'id='+ id;
$.ajax
({
type: "POST",
url: "findsub.php",
data: dataString,
cache: false,
success: function(html)
{
//$("#subCategory").selectbox("detach")
$("#subCategory").html(html);
// $("#section-category #subCategory").selectbox();
}
});
},
effect: "slide"
});
$('.subCategory').change(function() {
//NOTE I CAN SEE THE SELECTED VALUE OF THE SUBCATEGORY NORMALLY IN THIS ALERT
alert($(this).serialize());
return false;
});