2013-03-14 83 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