繁体   English   中英

如何使用JavaScript动态插入PHP“生成”选项(html选择)?

[英]How to insert PHP 'generated' options (html select) dynamically using JavaScript?

我正面临这个麻烦。

我有以下JavaScript代码:

echo "<script type=\"text/javascript\">
    var counter = 1;
    function addInput(divName){
              var newdiv = document.createElement('div');
              newdiv.innerHTML = \"Entry \" + (counter + 1) + \" <input type='text' name='myInputs[]'>\";
              document.getElementById(divName).appendChild(newdiv);
              counter++;
    }
</script> ";  

和这个PHP代码:

$produkty="SELECT * FROM goods ORDER BY name";

    if (isset($_POST['order'])) {
        $name = $_POST['myInputs'];

        foreach( $name as $key => $n ) {
          print $n." thank you\n <br />";
        }
    }        
echo "
        <fieldset><form method='post'>            
              <div id='dynamicInput'>
                       <select name='idp[]'>";
                           $vys = mysqli_query($db, $goods);
                           while ($arr = mysqli_fetch_assoc($vys)) {
                               echo "<option value='".$arr['id_good']."'>".$arr['name']."</option>";               
                              }
                              echo "
                       </select> <br />
                       Entry 1 <input type='text' name='myInputs[]''><br />
               </div>
               <input type='button' value='Add another text input' onClick=\"addInput('dynamicInput');\"><br />
               <input type='submit' name='order'>
        </form></fieldset>
";

每次单击提交时,我都会用它“生成”新的(html)输入。

但是我不仅需要生成这些(html)输入,还需要生成(html)选择,该输入处理数据库中的值并将其显示为该(html)选择中的选项。

我进行了很多搜索,以找出将部分从<select ..插入到</select>到newdiv.innerHTML变量的方法,但是没有成功。 我发现一些提示,我应该“解析”(html)select中的PHP代码,然后创建变量$no1 = mysqli_query($db, $goods); $no2 = while ($arr = mysqli_fetch_assoc($no1)... ...最后只说JavaScript newdiv.innerHTML = <?php echo $no5; ?>; ..但语法有很多问题以及使我沮丧的原则。

你能帮我吗? ;)

如果我正确理解您的意见,以下是您可以为此做些什么的粗略草图。

<?php
$options = "";
$vys = mysqli_query($db, $goods);
while ($arr = mysqli_fetch_assoc($vys)) {
   $options .= "<option value='".$arr['id_good']."'>".$arr['name']."</option>";               
 }

echo <<< _html
<form method="post">            
      <div id="dynamicInput">
            <div>
                <select name=idp[]>
                    $options
                </select> <br />
                Entry 1 <input type="text" name=myInputs[]><br />
            </div>
       </div>
       <input type="button" value="Add another text input" onClick="addInput('dynamicInput');"><br />
       <input type="submit" name="order">
</form>

_html;

?>

<script type="text/javascript">
var counter = 1;
function addInput(divName){
          var newdiv = document.createElement('div');
          newdiv.innerHTML = "<select name=idp[]><?php echo $options; ?></select> Entry " + (counter + 1) + " <input type='text' name='myInputs[]'>";
          document.getElementById(divName).appendChild(newdiv);
          counter++;
}
</script>

希望这可以帮助...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM