2013-01-31 46 views
0

我有這個PHP文件,其中我需要這個可用的JavaScript變量(在同一個文件中)傳遞給我的PHP變量,像這樣。在同一個PHP文件中傳遞一個javascript數組到PHP變量

myfile.php contais:

var testing = ["EWMLMc3ES3I", "RSdKmX2BH7o", "SIXwlxhjaKY", "acp8TbBPVos", "6GpKR4-TLoI", "XLKLkTnKRwg", "6WPELkw5kD0"]; 

,我想讓它像這樣

testing = <?php $new_testing ?> 

我需要一個建議,也許一個jQuery片段但像我的情況這是一個PHP文件中的JavaScript。


編輯:額外的信息,這樣做的原因是,因爲有另一個JavaScript代碼(不是在同一個文件,而是有它通過外部JS包括)需要特定的PHP變量。 所以說這裏的邏輯:

  1. javascript_variable ---> php_variable(傳遞JavaScript變量PHP)然後,
  2. php_variable - > another_javascript_variable(通過PHP到另一個javascript文件)
  3. 的another_javascript_variable將通過外部JavaScript來執行文件

回答

0

在您的PHP端,使用json_encode()將您的php數組轉換爲合適的格式以將其傳遞給javascript。

PHP:

$var = array('lorem', 'ipsum', 'dolor'); 
$json_var = json_encode($var); 
$parameter = array('js_var' => $json_var); 
wp_enqueue_script('my_script'); 
wp_localize_script('my_script', 'object_name', $parameter); 

Javscript:

<script> 
my_var = jQuery.parseJSON(object_name.js_var); 
alert(my_var); 
</script> 
-1
<?php 
$testing = ["EWMLMc3ES3I", "RSdKmX2BH7o", "SIXwlxhjaKY", "acp8TbBPVos", "6GpKR4-TLoI", "XLKLkTnKRwg", "6WPELkw5kD0"]; 

echo 'var testing = ['.$testing[0].', '.$testing[1].' ]'; 

?> 

回聲用PHP JS代碼。

+0

沒有。我想將JavaScript「測試」變量賦值給一個PHP變量 –

1

它只能用於「頁面加載事件」的一種方式。換句話說,JavaScript(客戶端代碼)總是呈現AFTER PHP(服務器端代碼)。

解決此問題的一個方法是使用AJAX POST onload,客戶端已完成呈現並將響應返回給服務器。 (你的陣列)

+0

這可以應用於我的問題嗎?在同一個php文件中?.. 我欣賞你的評論Dan,但是請你可以給我看一些示例代碼,以便我理解它,並且讓我可以參考更多關於此的研究。 –

+0

在這種情況下不需要ajax – sbaaaang

+0

「解決此問題的一個方法是使用AJAX POST onload,其中客戶端已完成呈現並將響應返回給服務器(您的陣列)」 - @DanKanze - 這是怎麼回事?你是否建議在jquery .post上運行它? ,我認爲它不會渲染一個PHP文件嗎? :( –

0

從我明白你的問題的方式,我相信你正在尋找的是PHP函數json_encode

然後,你基本上可以做到你想什麼。

<?php $new_testing = array('one', 'two', 'three', 'four'); ?> 

<script> 
    var testing = <?php echo json_encode($new_testing); ?>; 
</script> 

如果你問「我的JavaScript如何將一個變量傳遞給我的PHP」,答案就是AJAX--你必須提出一個全新的請求。

相關問題