$ _POST不会从jQuery.post填充的表单中提取值

时间:2016-10-14 21:46:46

标签: javascript php jquery html

我尝试过研究,但我甚至不确定如何研究这个问题,因为大多数答案都与纯jQuery,PHP或HTML有关,但似乎没有人有同样的问题 - 这可能是意味着我错过了一些明显的东西......

我有一个带有选择框的表单。在更改选择框时,我将jQuery.post调用到带有php / mysql查询和html的函数页面。我把这些信息拉回到我的表单中,它的工作非常精彩。但是,当我发布表单时,变量$ _POST [' subcat']为空。这是代码:

形式:

    <li><h3><?php echo 'Market:';?></h3>
            <script>
                function display_subcat(vals)
                {
                    jQuery.post("<?php bloginfo('siteurl'); ?>/?get_subcats_for_me=1", {queryString: ""+vals+""}, function(data){
                        if(data.length >0) {

                            jQuery('#sub_cats').html(data);

                        }
                    });

                }                               
            </script>

        <p><select class="do_input_new" name="market" onchange="display_subcat(this.value)" >
        <option value="">Select Market</option>
        More Options...
        </select>
        <br/><span id="sub_cats">
        </span>

        </p></li>

功能:

    if(isset($_GET['get_subcats_for_me']))
    {
        $cat_id = $_POST['queryString'];
        if(empty($cat_id) ) { echo " "; }
        else
        { 

            $args2 = "orderby=name&order=ASC&hide_empty=0&parent=".$cat_id;
            $sub_terms2 = get_terms( 'project_cat', $args2 );   

            if(count($sub_terms2) > 0)
            {

                $ret = '<select class="do_input_new" name="subcat">';
                $ret .= '<option value="">'.__('Select Subcategory','ProjectTheme'). '</option>';

                foreach ( $sub_terms2 as $sub_term2 )
                {
                    $sub_id2 = $sub_term2->term_id; 
                    $ret .= '<option '.($selected == $sub_id2 ? "selected='selected'" : " " ).' value="'.$sub_id2.'">'.$sub_term2->name.'</option>';

                }
                $ret .= "</select>";
                echo $ret;

            }
        }

        die();  
    }

现在,当我提交表单时,变量$ submarket = $ _POST [&#39; subcat&#39;];是空的。其他一切都有效(这个类是我所期望的,数据是我所期望的),但似乎名称=&#34; subcat&#34;没有进入$ _POST。 print_r($ _ POST)没有列出subcat。想法?

1 个答案:

答案 0 :(得分:1)

我是个白痴。上面的代码完美无缺。我的问题是我的<form>的开头是<div>,我在大多数表单之前就已经关闭了。我想,因为所有其他元素都加载到它们在$ _POST中出现的同一页面上,但是因为“subcat”是新的,并且在<div>关闭之后,它没有在$中被拾取彦博。表格在这个特定元素之后很久就关闭了,所以它一定是因为它不是原创的。谢谢你的帮助@jcaron !!