簡體   English   中英

從 php 代碼在 JavaScript 變量中插入值

[英]Inserting value in a JavaScript variable from php code

我正在嘗試測試以下代碼以將 PHP 代碼中的值插入到我的 javascript 變量 x

測試了 PHP 代碼,它給出了正確的輸出,但 javascript 中的警告框顯示了這一點 -

date_sub(curdate(),interval 1 day) and activity=1 group by code by b > 1000"; $query = mysql_query($myquery); if ( ! $myquery ) { echo mysql_error(); die; } $data = array(); for ($x = 0; $x < mysql_num_rows($query); $x++) { $data[] = mysql_fetch_assoc($query); } //echo json_encode($data); echo ''; mysql_close ($服務器); ?>

 <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <title>Testing </title> <script type="text/javascript" src="jquery-1.9.1.min.js"></script> </head> <body> <?php $username='user'; $password='pass'; $host='xx.xx.xx.xx'; $database='abc'; $server = mysql_connect($host, $username, $password); $connection = mysql_select_db($database, $server); $myquery = 'select code a,sum(fee) b from xyz where date > date_sub(curdate(),interval 1 day) and activity=1 group by code having b > 1000'; $query = mysql_query($myquery); if ( ! $myquery ) { echo mysql_error(); die; } $data = array(); for ($x = 0; $x < mysql_num_rows($query); $x++) { $data[] = mysql_fetch_assoc($query); } //echo json_encode($data); echo '<input type="hidden" name="myPhpValue" value="'. json_encode($data) . '">'; mysql_close($server); ?> <script type="text/javascript"> function test(){ var x = document.getElementById("myPhpValue").value; alert(x); } test(); </script> </body> </html>

echo '<input type="hidden" name="myPhpValue" value="'. json_encode($data) . '">';

然后:

var x = document.getElementById("myPhpValue").value;

您需要插入id="myPhpValue" ,因為您使用了"getElementById";

在 html 行中添加 ID 屬性

echo '<input type="hidden" name="myPhpValue" value="'. json_encode($data) . '">';

將上面的行替換為

echo '<input type="hidden" name="myPhpValue" id ="myPhpValue" value="'. json_encode($data) . '">';

您正在將值插入 html,而不是 javascript 代碼。 這樣做:

<script type="text/javascript">

function test(){
 var x = <?php echo json_encode($data); ?>;
 alert(x);  
}
test();

</script>

服務器配置問題

如果您在客戶端獲取 php 代碼(查看源代碼以確認),則 PHP 引擎無法在服務器上運行。 您應該檢查 php 是否正確安裝在服務器上,並設置為 Web 服務器中 php 文件的處理程序。 這取決於您的 Web 服務器和操作系統。


代碼問題

問題 #1:您的輸出 (echo) 正在創建一個 HTML 元素,而不是 javascript。 因此,您應該轉義 HTML 的內容 - 使用htmlspecialchars而不是json_encode

問題 #2:您使用 javascript document.getElementById訪問元素,但您的實際元素沒有 ID。 因此需要將 id 屬性添加到您的 html 輸入元素。


解決方案:

第 1 階段:php 輸出 html - 使用htmlspecialchars並添加id屬性

echo '<input type="hidden" name="myPhpValue" id="myPhpValue" value="'. htmlspecialchars($data) . '">';

第 2 階段:javascript 訪問 html 元素(這是從您的代碼中獲取的)。

var x = document.getElementById("myPhpValue").value;

邊注

您正在使用已棄用mysql擴展,應該改用PDOmysqli

關於 SO 和外部資源的討論很多。

一些:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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