我尝试过研究,但我甚至不确定如何研究这个问题,因为大多数答案都与纯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。想法?
答案 0 :(得分:1)
<form>
的开头是<div>
,我在大多数表单之前就已经关闭了。我想,因为所有其他元素都加载到它们在$ _POST中出现的同一页面上,但是因为“subcat”是新的,并且在<div>
关闭之后,它没有在$中被拾取彦博。表格在这个特定元素之后很久就关闭了,所以它一定是因为它不是原创的。谢谢你的帮助@jcaron !!