javascript中的PHP用于下拉菜单 - javascript

我一直在尝试解决在JavaScript中创建下拉菜单但使用PHP数据的问题。我知道您无法在JavaScript中“运行” PHP,但无法解决我的问题。我的目标是使用户能够即时向表单添加更多项目。我没有下拉菜单也可以正常工作,因此下面是我认为需要的所有代码。这就是我的开始,并且尝试了多个修复程序,但没有任何运气。

谢谢您的意见!

    newdiv.innerHTML = "<div style=\"float:left; width:200px;\"><select name=\"Room_Type\" style=\"width:200px;\" tabindex=\""+counter+"\">";

              newdiv.innerHTML .= "<option value=\"\" selected=\"selected\">Select one</option>";
<?php
        if ($Total_Rows != 0) {

            $Run_Cnt = 0;

            while ($Run_Cnt < $Total_Rows): ?>

                newdiv.innerHTML .= "<option value=\""+<?=$Room_Type_List[$Run_Cnt]['ID']; ?>+"\">"+<?= stripslashes($Room_Type_List[$Run_Cnt]['Type_Name']); ?>+"</option>";<?php
            $Run_Cnt++;  
            endwhile;

        } ?>
        newdiv.innerHTML .= "</select></div>";

参考方案

切勿将数据直接串联到脚本中。必须对其进行正确的转义才能正常工作。 stripslashes()是不够的。在代码中,您将数据从PHP输出到JavaScript,然后在JavaScript中输出到HTML。这只会导致头痛。

就您而言,我认为最好将房间类型数据发送到JavaScript,然后在JavaScript客户端组装元素。

<script>
  // Use JSON-encoding, which is compatible with JavaScript
  var roomTypes = <?php echo json_encode($Room_Type_List); ?>;

  // Now, all of your room data is available to use directly within JavaScript
  console.log(roomTypes);

  // Build your HTML here

</script>

现在,当您构建HTML时,请确保设置属性和文本。切勿将数据串联为HTML,除非该数据实际上是HTML。使用el.setAttribute()el.textContent()。文本可能很棘手,所以我通常只使用jQuery的.text()

在提交时在表单操作中获取变量丢失 - javascript

            当表单由onchange事件提交时,它不会保留get变量view。任何想法为什么会发生这种情况?提交后,这是它进入的网址,index?month=February&year=2014<form action="index?view=list" class="pure-form pure-fo…

选择后显示输入元素 - javascript

我有一个表格,其中取决于用户的选择,输入元素是否可见。实际上,用户正在以另一种形式设置已定义的合作伙伴类型,并且如果选中该元素,则允许在该类型的合作伙伴上可见的元素类型1将显示以下元素:<input type="text" id="partner" name="partner" class=&…

JavaScript将PHP中的字符串和整数传递给函数 - javascript

我正在尝试将字符串和整数都传递到同一函数中,但是引号引起了问题。我发现错误出在echo $q->info部分,我必须在此代码上使用双引号。有人可以帮我写这个$q->info,但不能获得真正的价值吗?到目前为止,我的代码是<td><a href="javascript:add(<?php echo $q->i…

淘汰赛在金字塔中的行为不正确 - javascript

我正在使用Pyramid构建一个Webapp,但是Knockout的行为有所不同。我有一个表格: <div data-bind="with: $root.itemToAdd" style="display: none;"> <form data-bind="submit: $root.add…

在javascript中设置计时器后更改文本 - javascript

我需要一些代码帮助,因为我在设置计时器时遇到了更改文本的问题。当我单击一个按钮时,它将禁用该按钮,它将在我启动计时器3秒钟时更改文本,然后启用它并将文本更改回原来的位置。当我尝试这个:<button name="btn1" id="btn1" type="submit" class="…