JQuery AJAX Нет ответа PHP - PullRequest
       1

JQuery AJAX Нет ответа PHP

1 голос
/ 17 августа 2011

Мой скрипт работает нормально и предупреждает меня, что данные сохранены.но по причине отладки я хочу видеть ответ PHP ("Procees.php") также в формате html.Я вижу это в firebug, но я не знаю, как это сделать, используя jquery.Мои коды следующие:

            var dataString ='doctype='+ doctype + '&paytype=' + paytype + '&docno=' + docno + '&bookno=' + bookno + '&prname=' + prname +'&pename='+pename+'&paydate='+paydate+'&inpdate='+indate 
        +'&e1='+e1 +'&e2='+e2 +'&e3='+e3 +'&e4='+e4 +'&e5='+e5 +'&e6='+e6 +'&e7='+e7 +'&e8='+e8 
        +'&accname1='+accname1 +'&accname2='+accname2 +'&accname3='+accname3 +'&accname4='+accname4 +'&accname5='+accname5 +'&accname6='+accname6 +'&accname7='+accname7 +'&accname8='+accname8 
        +'&dr1='+dr1 +'&dr2='+dr2 +'&dr3='+dr3 +'&dr4='+dr4 +'&dr5='+dr5 +'&dr6='+dr6 +'&dr7='+dr7 +'&dr8='+dr8
        +'&cr1='+cr1 +'&cr2='+cr2 +'&cr3='+cr3+'&cr4='+cr4 +'&cr5='+cr5 +'&cr6='+cr6 +'&cr7='+cr7 +'&cr8='+cr8 +'&ref='+ref;


        //alert (dataString);return false;
        $.ajax({
        type: "POST",
        url: "bin/process.php",
        data: dataString,
        cache:false,
        datatype: 'json',               
        success: function(data) {

        $('#display').html("<h2>Data submitted!</h2>")
        .append("<p>Wait........</p>")
        .hide()
        .fadeIn(1500, function() {
        $('#display').append("<img id='checkmark' src='images/check-black.jpg' />");
        $('#display').html("<h3>Being Processed...</h3>")
        .fadeIn(1500, function() {
        $('#display').append("Saved <img id='checkmark' src='images/check-black.jpg' />")
        $('#thisfrm').get(0).reset();
        $("#indate").val(indate)






        });

        });
        }
        });


        return false;   

Мой эхо PHP

                echo 'This is processing file.\n';


            $doctype = $_REQUEST['doctype'];
            $paytype = $_REQUEST['paytype'];
            $docno = $_REQUEST['docno'];
            $bookno = $_REQUEST['bookno'];
            $prname = $_REQUEST['prname'];
            $pename = $_REQUEST['pename'];
            $paydate = $_REQUEST['paydate'];
            $inpdate = $_REQUEST['inpdate'];
            $ref = $_REQUEST['ref'];


            echo $doctype."<br>";
            echo $paytype."<br>";
            ....
            ... and so on

, но он нигде не отображается на веб-странице.

Заранее благодарен за любую помощь.

Ответы [ 3 ]

3 голосов
/ 17 августа 2011

Вам нужно json_encode вашего ответа, так как ваш jQuery ожидает json!

echo json_encode(array("doctype"=>$doctype, "paytype"=>$paytype));
1 голос
/ 17 августа 2011

Данные, которые выводятся PHP во время запроса AJAX, будут находиться в переменной data вашей функции обратного вызова success. Если вы хотите добавить данные на свою страницу, вам нужно сделать это в функции успеха.

$.ajax({
    type: "POST",
    url: "bin/process.php",
    data: dataString,
    cache:false,          
    success: function(data) {
        // the data variable contains all PHP output during this request
        $('#display').html(data);
    }
});

Также обратите внимание, что ваш скрипт в настоящее время указал, что это запрос JSON - что jQuery должен обрабатывать вывод как данные JSON. Однако вы выводите текстовые / html-данные в свой фрагмент PHP. Либо а) добавьте ваш html в одну переменную, затем вызовите print json_encode($mydata);, ИЛИ b) удалите свойство datatype из запроса. jQuery автоматически определит тип ответа. В приведенном выше примере предполагается, что вы НЕ меняете код PHP, ниже приведены подробные сведения о том, как правильно использовать JSON (требуется изменить PHP).

Чтобы сделать метод JSON, вместо использования echo, используйте переменную:

$html = '';
$html .= 'Doctype: '.$doctype;
$html .= 'Something elese: '.$something_else;
// etc...
die(json_encode(array('html'=>$html)));

Тогда ваша jjuery ajax-функция выглядит следующим образом:

$.ajax({
    type: "POST",
    url: "bin/process.php",
    data: dataString,
    cache:false,
    datatype: 'json',           
    success: function(data) {
        $('#display').html(data.html);
    }
});
0 голосов
/ 17 августа 2011

Поместите это в вашу функцию успеха.

$('#display').append(data);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...