[英]PHP Inside JavaScript - Quotes Issue?
下午好,
我一直在寻找有关此方面的信息,并且干dry了。 想法是要有一个使用选择框显示mysql数据库信息的表单。 这主要是通过html / php完成的,但是我添加了JavaScript功能,该功能允许用户按下按钮来创建其他选择数组,以表示其他产品。 我目前面临的问题是,我似乎无法使php在JS innerHTML内部运行。
订单add.php
<script src="/js/addProduct.js" language="Javascript" type="text/javascript"></script>
<tr>
<td>Product(s)</td>
<td><div id="dynamicInput">
<select name="orders_product[]">
<option value="">Select One</option>
<?php
$orders_product_query = $conn->prepare("SELECT product_name FROM product");
$orders_product_query->execute();
$orders_product_query->bind_result($orders_product_result);
while ($orders_product_query->fetch()) {
echo "<option value = '$orders_product_result'>$orders_product_result</option>";
}
$orders_product_query->close();
?>
</select>
</div>
<input type="button" value="Add product" onClick="addInput('dynamicInput');">
</td>
</tr>
addProduct.js
var counter = 1;
var limit = 10;
function addInput(divName) {
if (counter == limit) {
alert("You have reached the limit of adding " + counter + " products.");
} else {
var newdiv = document.createElement('div');
newdiv.innerHTML = "
<select name='orders_product[]'>
<option value=''>Select One</option>
<?php
$orders_product_query = $conn->prepare('SELECT product_name FROM product');
$orders_product_query->execute();
$orders_product_query->bind_result($orders_product_result);
while ($orders_product_query->fetch()) {
echo 'test';
}
$orders_product_query->close();
?>
</select>";
document.getElementById(divName).appendChild(newdiv);
counter++;
}
}
在我一直试图进行的所有测试中,似乎问题出在addProduct.js的newdiv.innerHTML部分。 我以为它不接受php,但也可能是我的内引号弄乱了。
在此先感谢您的帮助!
我认为您不了解这是如何工作的。 当客户端在服务器端请求页面时,将执行PHP代码。 JS在客户端执行。 Web浏览器上没有PHP解释器。 您可以做的就是将PHP代码放在一个单独的文件中(例如:fragment.php),并通过AJAX对其进行调用。 在这种情况下,您的代码将在服务器中执行。
我希望这有帮助!
是否将addProduct.js包含在标签中? 如果是这样,请查看您的开发人员工具。 这可能与您在此处发布的内容完全一样,并且php标签是文本的一部分。 您需要将此文件的扩展名更改为.php,并在script标签中进行更改,以使php解析该文件。
另外,您可以尝试类似@NMO的建议,然后通过AJAX进行检索。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.