2013-03-14 82 views
0

我想追加PHP使用JQuery的.append()追加PHP代碼

<script> 
var values = {var1: 2, var2:"Hello"}; 
    $('#id').append($.get("phpfile.php", values)); 
</script> 

一個div但是它似乎沒有追加基本的回聲在PHP文件

<?php 
$var1 = $_GET['var1']; 
$var2 = $_GET['var2']; 
echo "var1= " . $var1 . " " . "var2= " . $var2; 
?> 

任何幫助將不勝感激。

+2

您是否檢查過$ .get()函數返回的內容? – zerkms 2013-03-14 00:08:32

+0

這不是'$ .get()'的工作原理,Ajax是異步的 – 2013-03-14 00:08:53

回答

4

Ajax調用是異步的。這意味着$.get()函數的返回值將是而不是是請求的結果,因爲請求尚未執行。您需要使用$.get()呼叫的成功處理程序將被調用時請求回來的成功,或者採用由$.get函數返回了jQuery Deferred對象(一諾)的。

正確句法#1:

<script> 
    var values = {var1: 2, var2:"Hello"}; 
    $.get("phpfile.php", values, function(data) { 
     $('#id').append(data); 
    }); 
</script> 

下面是使用promises替代語法:

<script> 
    var values = {var1: 2, var2:"Hello"}; 
    $.get("phpfile.php", values).done(function(data) { 
     $('#id').append(data); 
    }); 
</script> 
+2

我添加了一些背景信息,如果您不同意,可以隨時回滾 – 2013-03-14 00:09:44

+1

@Pekka웃我正在研究這個,你打敗了我:P – 2013-03-14 00:09:57

+0

非常感謝:D – user2167744 2013-03-14 00:20:57

0

使用此,jQuery的

<script> 
    $.get("phpfile.php", { 'var1': 1, 'var2' : 2}, 
     function(data){ $('#id').append(data); }, "json"); 
    }); 
</script> 

PHP

<?php  
    $var1 = $_GET['var1']; 
    $var2 = $_GET['var2']; 
    $data = "var1= " . $var1 . " " . "var2= " . $var2; 

    echo json_encode($data); 
    exit; 
?> 
+0

這是不必要的過於複雜,無需JSON編碼輸出時,普通輸出將正常工作。 – 2013-03-14 00:18:44