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


$_POST isn't pulling value from the form populated by jQuery.post

我试过研究,但我甚至不确定如何研究这个问题,因为大多数答案都与纯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['subcat'];是空的。其他一切都工作正常(类是我所期望的,数据是我所期望的),但似乎名称="子cat"没有传递到$_POST。print_r($_POST)没有列出子cat。想法吗?

我是个白痴。上面的代码运行得很好。我的问题是,我的<form>的开始是在<div>,我关闭了大部分形式之前。我想因为所有其他元素都加载在同一页面上,它们在$_POST中过来,但是因为"子猫"是新的,并且在<div>关闭后,它没有在$_POST中被拾取。这个形式在这个特定元素之后关闭了很长时间,所以肯定是因为它不是原创的。谢谢你的帮助@jcaron!!