[英]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
擴展,應該改用PDO
或mysqli
。
關於 SO 和外部資源的討論很多。
一些:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.