Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用php填充的选项附加select元素_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript 使用php填充的选项附加select元素

Javascript 使用php填充的选项附加select元素,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我是网络编程的新手。我需要在表单中动态创建一个select元素。这个select元素的选项是用php填充的 我不知道怎么做。但我有这个密码,我不能去工作。 我可以用它创建选择标记,但是没有填充选项 HTML代码: <div id='page3'> <input type='button' id='aprod'> </div> JS代码: $('#aprod').on('click',function(){ $('#page3').append('

我是网络编程的新手。我需要在表单中动态创建一个select元素。这个select元素的选项是用php填充的

我不知道怎么做。但我有这个密码,我不能去工作。 我可以用它创建选择标记,但是没有填充选项

HTML代码:

 <div id='page3'> 
 <input type='button' id='aprod'>
 </div>

JS代码:

$('#aprod').on('click',function(){
$('#page3').append('<select class="input" id="name_of_product" name="name_of_product">
<option value="">---</option> 
<?php include("config.php"); 
 $qry = $handler->prepare( "SELECT * FROM product_list WHERE plist_compid = ?");
 $qry->execute(array($id)); 
 while($row = $qry->fetch(PDO::FETCH_ASSOC)){ 
 $p_id = $row["plist_id"];  
 $p_name = $row["plist_name"];  
 echo "<option value= "$p_name">$p_name</option>"; 
 }  
?>  
</select>');
});
$('aprod')。在('click',function()上{
$('#第3页')。追加('
--- 
');
});

通常的做法是:

<div id='page3'>
<select style="display:none;" class='input' id='name_of_product' name='name_of_product'>
          <option value=''>---</option> 
          <?php include("config.php"); 
           $qry = $handler->prepare( "SELECT * FROM product_list WHERE plist_compid = ?");
           $qry->execute(array($id)); 
           while($row = $qry->fetch(PDO::FETCH_ASSOC)){ 
               $p_id = $row["plist_id"];  
               $p_name = $row["plist_name"];  
               echo '<option value= \"'.$p_name'\">'.$p_name.'</option>'; 
           }  
           ?>  
     </select> 
 <input type='button' id='aprod'>
 </div>

正如我在评论中所说,您不能在客户端事件上执行服务器端代码。而且,服务器端代码已经运行&不必等待您的click事件。您可以预先填充选择框,将其隐藏并在单击时显示,或者在单击时执行ajax并填充选择框。这是前一种选择:

<div id='page3'> 
    <input type='button' id='aprod' value="Show my select box" />
    <select class="input" id="name_of_product" name="name_of_product" style="display: none;">
        <option value="">---</option>
        <?php
            include("config.php"); 
            $qry = $handler->prepare( "SELECT * FROM product_list WHERE plist_compid = ?");
            $qry->execute(array($id));
            $options = "";
            while($row = $qry->fetch(PDO::FETCH_ASSOC)) { 
                $p_id = $row["plist_id"];  
                $p_name = $row["plist_name"];  
                $options .= '<option value="'.$p_name.'">'.$p_name.'</option>';
            }
            echo $options;
        ?>
    </select>
</div>

使用克隆功能,我能够完成这一点

下面是我的代码:

<div id='page3'> 
 <input type='button' id='aprod'>

 <select class="input" id="Factory_Name" name="factory">
    <option value = '' selected>---</option>

    <?php
    $qry = $handler->prepare( "SELECT * FROM factory_list WHERE flist_compid = ?");
    $qry->execute(array($id));
    while($row = $qry->fetch(PDO::FETCH_ASSOC)){
        $f_id = $row['flist_id'];
        $f_name = $row['flist_name'];
        echo "<option value= '$f_name'>$f_name</option>";
    }
    ?>

</select>
</div>

如果您收到任何错误,请检查控制台?没有错误,只是动态创建的select标记的选项没有填充。为什么要用js附加ap php查询?我该如何正确执行?您不能在客户端事件上执行服务器端代码。您可以预先填充选择框,将其隐藏并在单击时显示,或者在单击时执行ajax并填充选择框。
$('#aprod').on('click', function() {
    $('#name_of_product').show();
});
<div id='page3'> 
 <input type='button' id='aprod'>

 <select class="input" id="Factory_Name" name="factory">
    <option value = '' selected>---</option>

    <?php
    $qry = $handler->prepare( "SELECT * FROM factory_list WHERE flist_compid = ?");
    $qry->execute(array($id));
    while($row = $qry->fetch(PDO::FETCH_ASSOC)){
        $f_id = $row['flist_id'];
        $f_name = $row['flist_name'];
        echo "<option value= '$f_name'>$f_name</option>";
    }
    ?>

</select>
</div>
$('#aprod').on('click', function() {
    $('#Factory_Name').clone().appendTo('#page3');
});