2011-08-18 65 views
0

訪問PHP聲明的變量比如我聲明一些變量喜歡在我的PHP的服務器端測試如何通過jQuery的

echo('var test = ' . json_encode($abc)); 

現在我想我..how可以用它來使用這個測試變量的Jquery ?

我需要使用它什麼功能?

,比如我有:

我有後端PHP代碼是這樣的

$abc = no 
echo "var test= ".json_encode($abc); 

我想要的jQuery做以下動作(客戶端)

$(document).ready(function(){ 
function(json) { 
if($abc == no)//this i what i want to be achieved 

    } 
} 

回答

1

我認爲,你不瞭解前端(JavaScript)和後端(PHP)之間的區別。你不能直接從javascript訪問php變量。您需要向某個php文件發出Ajax請求,這會返回您需要的一些數據,並以您指定的格式顯示。 例如:

<?php 
    $result = array('abc' => 'no'); 
    echo json_encode($result); 
?> 

這就是所謂的data.php服務器端腳本。在Javascript中你可以這樣:

$(document).ready(function(){ 
    $.getJSON('data.php', function (data) { 
     if(data.abc === 'no') { 
      your code... 
     } 
    }); 
} 
+0

他沒有提到任何關於AJAX的知識,並且根據他提供的代碼,他不需要它。 – AlienWebguy

0

你」重新比較錯誤的變量:

<?php 

echo <<<JS 
    <script type="text/javascript"> 
     var test = {json_encode($abc)}; 
     $(document).ready(function(){ 
      if(test == 'no') 
       // here you go 
      } 
     }); 
    </script> 
JS; 
+0

jquery部分將在我的客戶端...測試是一個服務器端.. –

+0

這是正確的答案。 Javascript沒有名爲'$ abc'的變量。 PHP回聲'var test = ...'so'test'是條件中要比較的變量。 – Maverick

+0

@John php提供頁面,因此在頁面加載時不需要從客戶端向服務器發送ajax回調。 – AlienWebguy

0

如果你真的想(雖然我不認爲這是一個很好的做法),你可以回聲PHP變量的值到這樣的JavaScript變量:

<script type="text/javascript"> 
    var phpValue = <?php echo $abc; ?>; 
    alert(phpValue); 
</script> 

在很多情況下,我可以看到這是很危險的,但是這種有效的做法是將$abc的值反映到頁面上(當然,在腳本標記內部)。然後,當它的JavaScript在瀏覽器中運行,瀏覽器發現這樣的:

<script type="text/javascript"> 
    var phpValue = no; 
    alert(phpValue); 
</script> 

這是很基本的,但你得到的,你可以通過使用這種代碼做些什麼的想法。