post php javascript中缺少变量

post php javascript中缺少变量,php,javascript,javascript-events,combobox,dynamic-controls,Php,Javascript,Javascript Events,Combobox,Dynamic Controls,***编辑 @alditis TY,尝试了你的建议,但是javascript在它之后不起作用。这一个不需要那么安全,因为没有涉及敏感数据,我在学习的过程中也在学习。此外,我将更多地使用这些查询,因此我更希望将整个数组放在其中 @Barmar是的,最后一个snippit显示了Google Chrome如何使用调试器查看输出。这就是为什么它如此奇怪 @弗洛伊德说,我尝试了一些东西,但从未放弃 @saeed arab sheybani我真的不明白?代码工作正常,列表填充得很好。问题是$\u请求['po

***编辑

@alditis TY,尝试了你的建议,但是javascript在它之后不起作用。这一个不需要那么安全,因为没有涉及敏感数据,我在学习的过程中也在学习。此外,我将更多地使用这些查询,因此我更希望将整个数组放在其中

@Barmar是的,最后一个snippit显示了Google Chrome如何使用调试器查看输出。这就是为什么它如此奇怪

@弗洛伊德说,我尝试了一些东西,但从未放弃

@saeed arab sheybani我真的不明白?代码工作正常,列表填充得很好。问题是$\u请求['pos\u no']似乎不存在。它应该按照输出代码进行提交。也许我不明白你在说什么,你能举个例子把我联系起来吗

我试图让一个php/javascript动态填充的组合框通过mysql查询工作,在大多数情况下,它工作正常,直到我点击提交按钮。到目前为止,脚本完全符合我的要求

从我所看到的情况来看,替换代码不在$\u POST数组中。我假设发生这种情况是因为一旦表单加载,它会列出期望的字段或当场创建$\u post数组,因此通过插入一些新代码,它可能会忽略它?只是一个猜测,但似乎合乎逻辑,如果是这样的话,人们将如何解决这个问题?这已经困扰了我一个多月了

javascript:

<script type="text/javascript">
    $(document).ready(subpos_selectbox_change);
    function subpos_selectbox_change(){
        $('#subpos').change(update_position_number);
    }
    function update_position_number(){
        var subpos=$('#subpos').attr('value');
        $.get('get_list.php?subpos='+subpos, show_posnumbers);
    }
    function show_posnumbers(ss){
        $('#position_number').html(ss);
    }
</script>

对于选择菜单,当键盘和鼠标按钮事件和NoScript有效交互选择某个选项时,会发生更改事件。 对于文本字段或文本区域,更改事件在字段失去焦点时发生。 因此,如果不通过键盘或鼠标选择任何选项,就无法直接使用更改事件 试试这个:

<select name="subpos" id="subpos">
<option value="1">first</option>
<option value="2">secound</option>
<option value="3">Third</option>
</select>


<script>
    $(function() {
        $('#subpos').change(function() {
            console.log('subpos has changed');
        }); 
        $("#subpos").val('2');//combo box has change but dont appear in console log. why?
   });
</script>
跑后;请参阅控制台日志 在控制台日志中看不到“subpos已更改”。但实际上,传票已改为“第二” 发生了什么事? 当选择更改时,应将其记录到控制台。
现在,通过从下拉列表中选择该选项,您可以看到cosole log is change

问题在于Javascript没有将结果绑定到DOM。而是使用了一些JQuery。胡萨

感谢所有的贡献

JavaScript:

<script type="text/javascript">
            $(document).on('change', "#subpos", function(){
                var subpos=$('#subpos').attr('value');
                $.get('get_list_test.php?subpos='+subpos, function(ss){
                    $('#pos_number').html(ss);
                });
            });
</script>
HTML:

PHP:


我认为没有必要打开get_list.php。您可以更改为:$teamQuery=SELECT*,其中机构职位职位职位职位职位职位填充='0',活动职位='1',职位职位职位职位职位职位acrynom='。$_请求[“传票]”;此外,您应该避免sql注入。从get_list.php返回的HTML是否包含元素,或者只是s?为什么这样做:,为什么不只是;我并不认为这是答案,只是好奇而已。我建议您使用来执行对数据库的查询。如果您只需要位置号和位置id,请避免选择*FROM。这不是答案。这只是一个注释。你现在可能无权发表评论……但无论如何,这不是答案。所以不要这样做。
<select name="subpos" id="subpos">
    <option value="AO2">AO2</option>
    <option value="AO3">AO3</option>
    <option value="AO4">AO4</option>
    ...
</select></td>
<select name="pos_number" id="pos_number">
     <option value="2">805620121</option>
     <option value="10">805678998</option>
</select>
Array
(
    [firstname] =&gt; test
    [middlename] =&gt; test
    [lastname] =&gt; test
    [usr] =&gt; 
    [sex] =&gt; 1
    [subpos] =&gt; AO3
    [empStrtDte] =&gt; 2012-02-19
)
<select name="subpos" id="subpos">
<option value="1">first</option>
<option value="2">secound</option>
<option value="3">Third</option>
</select>


<script>
    $(function() {
        $('#subpos').change(function() {
            console.log('subpos has changed');
        }); 
        $("#subpos").val('2');//combo box has change but dont appear in console log. why?
   });
</script>
<script type="text/javascript">
            $(document).on('change', "#subpos", function(){
                var subpos=$('#subpos').attr('value');
                $.get('get_list_test.php?subpos='+subpos, function(ss){
                    $('#pos_number').html(ss);
                });
            });
</script>
<tr><td>Position No: </td><td><select name="pos_number" id="pos_number"><option value="">choose a Position first</option></select></td></tr>
$teamQuery = "SELECT * FROM establishment_positions WHERE position_filled='0' AND active='1' AND position_acrynom='".mysql_real_escape_string($_REQUEST['subpos'])."'";

$ss = null;
$result = mysql_query($teamQuery);
while($row = mysql_fetch_array($result))
{
    $ss.= '<option value=' . $row['position_id'] . '>' . $row['position_number'] . '</option>';

}
echo $ss;