【问题标题】:Can't get the selected value of a dropdown in php无法在php中获取下拉列表的选定值
【发布时间】:2013-01-20 12:52:01
【问题描述】:

有问题的下拉菜单称为 subCategory , 它的内容是通过选择另一个下拉类别来填充的,该类别的 onchange 事件正在触发 ajax 请求。

问题是,即使子类别的内容按预期填充(可见)并且我可以看到它们并在子类别下拉列表中选择它们,但当我执行 php 帖子时,我只能获得初始选项的值@ 987654321@不管我是否选择任何其他元素。

也许 dom 没有刷新,但我不确定..

$_REQUEST 的 PHP print_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;
});

【问题讨论】:

  • 所以$("#subCategory").html(html);&lt;option&gt; 元素添加到&lt;select id="subCategory"&gt;?
  • 好的,在您的示例代码中,您缺少一些关闭的&lt;/option&gt; 元素......是它在您的代码中的样子,可能还需要更正。 (在古董和其他猫之后)。

标签: php jquery html ajax smarty


【解决方案1】:

这不起作用的原因是我有另一个选择框(更下方)与子类别具有相同的名称和第一个选项,PHP 正在使用这个值。

现在可以了,谢谢

【讨论】:

    猜你喜欢
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多