簡體   English   中英

PHP Inside JavaScript-報價問題?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM