2013-03-14 4 views
0

Я пытаюсь добавить PHP в DIV с помощьюJQuery .append() добавить PHP код

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

Однако он не кажется, добавить основной эхо в файле PHP

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

любая помощь будет оценена.

+2

Вы проверили, какая функция '$ .get()' возвращает? – zerkms

+0

Это не работает '$ .get()', Ajax является асинхронным –

ответ

4

Ajax-вызовы асинхронны. Это означает, что возвращаемое значение функции $.get() будет не быть результатом запроса, так как запрос еще не выполнен. Вам нужно использовать обработчик успеха вызова $.get(), который вызывается, когда запрос возвращается успешно, или использует отложенный объект jQuery (обещание), который возвращается функцией $.get.

Правильный синтаксис # 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

Я добавил некоторую справочную информацию, не стесняйтесь откатываться, если вы не согласны –

+1

@Pekka 웃 Я работал над этим, вы избили меня до этого: P –

+0

большое спасибо: D – user2167744

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 кодировать вывод, когда простой выход будет работать нормально. –

Смежные вопросы