2014-06-25 31 views
-1

我需要關於如何從JavaScript內調用外部PHP腳本的幫助。 在我的例子見下面如何從JavaScript內部調用PHP腳本

的index.php

<!DOCTYPE html> 
<html> 
<body> 
<p id="demo"></p> 

<script> 
var myName = 'John'; 
phpResult = /* Need help calling script.php passing is myName and assigning result to phpResult */; 

document.getElementById("demo").innerHTML = "The text from the intro paragraph is " + phpResult; 
</script> 

</body> 
</html> 

的script.php

<?php 
    //script.php 
     //Need help adding last name to John (i.e. Smith) and returning John Smith to calling javascript 
?> 
+3

PHP在服務器上運行。它的工作是使用由瀏覽器運行的HTML/JavaScript生成頁面。當瀏覽器運行JavaScript時,PHP自完成以來就已經很久了。您需要查看AJAX以向服務器發出* new *請求。 –

+0

第二點是,如果你想要添加新的名稱或最後一個名稱,那麼你需要創建一個表格進一步 –

+0

可能重複的[從javascript調用php函數](http://stackoverflow.com/questions/7165395/call- php-function-from-javascript) –

回答

-1

首先要說的是:你問的是不能按照你的想法完成的。當請求一個頁面時,服務器運行php文件,之後它會向你發送javascript/html/css頁面給你。所以當你看到php腳本已經完成的頁面時。 Javascript正在你的機器上運行,所以你可以用它來處理用戶交互。

但是,如果你向script.php發送了一個post請求,發送你想要的信息,那麼你將能夠與一個php文件進行交互。要做到這一點,你需要jQuery。這裏是腳本如何在jQuery的做到這一點:

$.ajax({ 
    type: "POST", 
    url: "yoursite/script.php", 
    data: "name="+myName, 
    success: function(data){ 
phpResult = data; 
document.getElementById("demo").innerHTML = "The text from the intro paragraph is " + phpResult; 

} 
}); 

你可以從這裏下載的jQuery:http://jquery.com/download/

你已經下載完成後,你必須給它的jquery.js鏈接到您的index.php文件,作爲一個正常的JavaScript文件。

在您的php文件中,您可以通過$_POST["name"]訪問名稱以及要發回的信息,但您必須實際打印它。 類似這樣的:

if(isset($_POST["name"])){ 
$result = ""; 
//Do something with the name, and fill accordingly the $result variable 
// Something like: 
$result = $_POST["name"]." Smith"; 
echo $result; 
} 
+0

你不需要* jQuery。你可以使用它,但你不需要它。 –

-1

你可以簡單地寫

phpResult = '<?php echo $sometext; ?>'; 

但是,

  • js腳本需要在一個php文件中。你顯然不能在.js文件中使用它。
  • 這不會評估客戶端的任何運行時變量。因爲該頁面已經包含了來自服務器的php腳本渲染的變量。

我一直使用這種方法,專門用於渲染php數組和對象作爲js對象/數組。

+0

爲down投票提供了一個正確的解釋。 – astroanu