2012-06-27 60 views
0

我使用此代碼後的一些數據獲取一些剛剛發佈的數據

$('.update_btn').live("click",function() 
{ 
var ID = $(this).attr("id"); 
var dataString = 'msg_id='+ ID; 

$.ajax({ 
type: "POST", 
url: "get-data.php", 
data: dataString, 
cache: false, 
success: function(){ 
//alert(dataString);//is not empty 
getData(); 
} 
}); 
return false; 
}); 

function getData() 
{ 
    $.ajax({ 
     type: "GET",  
     url: 'get-data.php',                 
     success: function()   
     { 
     var jq = '<?php echo $_POST['msg_id'];?>'; 
     alert(jq);  
     } 
    }); 
} 

和功能數據檢索剛剛發佈的數據,但var jq無張貼data.What可能是原因?

+2

PHP是服務器端。 Javascript是客戶端。 – PeeHaa

回答

2

是,你正在使用jQuery(或任何JavaScript),你沒有嵌入PHP代碼到它...

假設你只想要返回msg_id,沒有別的你get-data.php會如果你 -

function getData() 
{ 
    $.ajax({ 
     type: "GET",  
     url: 'get-data.php',                 
     success: function(jq)   
     { 
     alert(jq);  
     } 
    }); 
} 

現在,這個擴展:是這樣的:

<?php 
    // all the database work here to obtain the id.. 

    echo $data['msg_id']; 
?> 

然後會變成你的getData功能,這R返回將是某種形式的數組,你會想在你的PHP使用json_encode ......像這樣:

<?php 
$data = mysqli_fetch_array(mysqli_query("SELECT * FROM table"), MYSQL_ASSOC); 

echo json_encode($data); 
?> 

邏輯上,因爲我們返回一個json array我們的JavaScript也改變:

function getData() 
{ 
    $.ajax({ 
     type: "GET",  
     url: 'get-data.php',                 
     success: function(response)   
     { 
     var jq = $.parseJSON(response); 
     alert(jq.msg_id);  
     } 
    }); 
} 

不多兩者之間的區別。但希望這個答案已經把你進一步道路上的您正試圖使用​​的工具開明的理解。有很多jQuery的教程在那裏,如果你只有谷歌爲他們......許多JavaScript死硬(包括我自己),會催促你學習原生JavaScript,以便你能理解什麼正發生在jQuery的幕後。這是一個非常好的主意,如果你是谷歌的話,還有很多關於它的信息和教程。

我確定有些人有一些書可以推薦給你閱讀。

+0

感謝您的建議。 – Gandalf

+0

-1,你似乎沒有意識到'return'的作用。 –

+0

不知道,當我回到沒有使用自定義框架的常規代碼時,就會失去理智。我確實更新了一些更合理的內容,但現在應該是正確的。 – Justin

2

success: function(r) { alert(r); }

你試圖在一個非常奇怪的方式混合PHP和JS。在PHP AJAX處理程序腳本中吐出已發佈的變量。

+0

請進一步解釋一下。你是什麼意思吐出來的? – Gandalf

+0

echo $ _POST ['val']; – Lusitanian

+0

您必須在AJAX函數調用的腳本中運行該腳本。 – Lusitanian

相關問題