簡體   English   中英

如何將json值php傳遞給js

[英]How to pass json value php to js

在我的一個php文件中,無論查詢結果顯示了我要放入number.js文件中的值,我都在運行一個查詢。 即使我在該PHP文件中復制了.js代碼,但在主文件(index.php)中,我也面臨着js文件的沖突。 那就是為什么我不能將js文件復制到該php文件中的原因。 請提供我的意見。 在下面,我復制了我的PHP代碼以及js文件。

用PHP代碼

$query_string = "SELECT COUNT(Email) AS total FROM Contact INNER JOIN CompanyBranch ON Contact.CompanyBranchID = CompanyBranch.CompanyBranchID INNER JOIN Company ON Company.CompanyID = CompanyBranch.CompanyID INNER JOIN CompanyIndustry ON Company.CompanyID =  CompanyIndustry.CompanyID INNER JOIN IndustrySubindustry ON CompanyIndustry.IndustrySubindustryID = IndustrySubindustry.IndustrySubindustryID WHERE CompanyBranch.GlobalRegionID = '$global_region' AND IndustrySubindustry.IndustryID = '$industry' AND IndustrySubindustry.SubindustryID = '$sub_industry'";
$query_string = strtolower($query_string);
$result_data = mysql_query($query_string) or die();

//$tmp = mysql_fetch_array($result_data);
$row = mysql_fetch_assoc($result_data);
$total_lead = $row['total'];
echo json_encode($total_lead);

我想重定向到number.js文件的$total_lead變量中獲取任何值

number.js文件中的代碼

var leads=0;

我想要var_leads=$total_lead (該值來自php文件)。

怎么可能?

默認情況下,.js文件不會在服務器上作為PHP腳本執行,除非您告知Web服務器這樣做。 這意味着您無法將PHP代碼嵌入到.js文件中,而無法為您填充內容。

除非您確實想修改服務器以強制對.js文件進行PHP處理,否則最好這樣做:

yourfile.php:

<?php
   ... do query stuff here ...
?>
<html>
<head>
   <script type="text/javascript">var leads = <?php echo json_encode($total_leader) ?>;</script>
   <script type="text/javascript" src="number.js"></script>
</head>

這將為您設置帶查詢結果的Leads變量,然后加載number.js腳本的其余部分,然后(假定)使用該變量。

另一種方法是使用一段JS代碼執行AJAX回調到您的服務器,以便在頁面加載時動態獲取該數字。

您可以在這里找到合適的PHP-JSON庫來完成此工作:

http://www.php.net/releases/5_2_0.php

http://pecl.php.net/package/json

JSON頁面: http//www.json.org/

我不知道您的應用程序的完整上下文,但是如果您要對此腳本進行AJAX請求,則需要使用回調或onreadystate更改,具體取決於調用是否異步。

如果此腳本還加載頁面,則需要在實際標簽的上下文中回顯該值。

您也可以使用JavaScript內聯運行PHP。 例如,看一下這個快速示例:

<?php
$query_string = "Your select statement...";
$query_string = strtolower($query_string);
$result_data = mysql_query($query_string) or die();

//$tmp = mysql_fetch_array($result_data);
$row = mysql_fetch_assoc($result_data);
$total_lead = $row['total'];
?>
<script type="text/javascript">
var leads = <?=$total_leads?>; //as integer
var leads = '<?=$total_leads?>'; //as string
//other js stuff
</script>

您可以使用此:

        var obj = <?php echo json_encode(your_json_object) ?>
        var jsonObject = JSON.parse(obj) 

暫無
暫無

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

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