PHP中的PHP下拉菜单

时间:2014-12-11 20:13:22

标签: javascript php

我一直在努力解决我在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>";

1 个答案:

答案 0 :(得分:1)

永远不要将数据直接连接到脚本中。必须妥善转义才能正常工作。 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()