2013-10-25 41 views
0

好了,所以我有JS創建一個鏈接:jQuery的崗位不是從PHP文件加載

var content = document.getElementById("Profile"); 
    var entry = document.createElement('li'); 
    entry.innerHTML= ' <a href="eventList2.html" onclick ="post()"> Click Me </a>'; 
    content.appendChild(entry); 

function post(){ 
$.post("random.php", { variable: "hello"}); 
} 

在我的PHP:

random.php

<?php 
Header("content-type: application/x-javascript"); 
error_reporting(E_ERROR | E_WARNING | E_PARSE); 

$variable = $_POST['variable']; 
echo"alert($variable);"; 

?> 

「未定義」 變回應而不是「你好」。有人能告訴我我做錯了什麼嗎?我對AJAX和Jquery不太熟悉,我只是在教程和示例中看到的任何內容。由於

+1

你從來沒有定義變量'hello'。 'alert(hello)'是PHP返回的內容。 –

+0

是的,因爲凱文說你應該把單引號括起來像'echo「alert('$ variable')」;' – lemondrop

+0

當我試着沒有任何警報 – Kay

回答

0

變化:

echo"alert($variable);"; 

到:

$js = json_encode($variable); 
echo "alert($js);"; 

這將使的$variable內容到一個Javscript文本格式正確。

+0

感謝您的回覆,但我試過了,現在我只是變空了 – Kay

+0

在我的代碼之前還有'$ variable = $ _POST ['variable']'嗎? – Barmar

1

爲什麼PHP返回警報?這是一個不好的方法。 讓PHP返回json編碼結果並讓jquery處理警報。 這是一種可能的方式來實現這一目標:

$.post("random.php", { variable: "hello"}, function(data) { 
    alert(data);  
}); 

PHP:

<?php 
Header("content-type: application/x-javascript"); 
error_reporting(E_ERROR | E_WARNING | E_PARSE); 

$variable = $_POST['variable']; 
echo json_encode($variable); 

?> 
+0

試過這個,但現在我得到null而不是undefined..any想法爲什麼? – Kay