Ajax kullanarak değer döndürmek için nasıl

3 Cevap php


I have Ajax file in which code has written to accept values form user and then these values are taken in a Ajax function as follows:

$(document).ready(function(){  
            $("#newsletterform").validate();  
            $('#Submit').click(function(){  
                var name = $('#newsletter_name').val();  
                var email = $('#newsletter_email').val();  
                 sendValue(email,name);  
            });  
            }); 

Değerleri geçen ve diğer dosyadan değerleri almak için işlevi:

function sendValue(str,name){  
                $.post(  
                "newsletter/subscribe.php", //Ajax file  
                { sendValue: str,  
                  sendVal: name  
                },  
                function(data2){  
                    $('#display').html(data2.returnValue);  
                },  

    //How you want the data formated when it is returned from the server.
                "json"  
                );  
            }  

ve bu değerler veritabanına ekleme kodu yazılır ve aşağıdaki gibi yine benim ilk ajax fonksiyonu değeri döndürmek olduğu "subscribe.php" adı verilen başka bir dosyaya geçirilir:

echo json_encode(array("returnValue"=>$msg));  
The msg is ging to contain my message to be displayed.  

Ama şimdi, bu localhost üzerinde çalışıyor, ben düzgün dönüş değerleri nad mesaj alıyorum ama ben sunucu üzerinde yüklediğinizde, bu bana bir hata olarak veriyor:

data2 is null
[Break on this error] $('#display').html(data2.returnValue);  

This only gives error for return value but insertion, sending mail functionality works fine.
Please provide me with a good solution wherein I can be able to get back the return values without any error.
Thanks in advance.

3 Cevap

Bu kullanın:

var response = $.ajax({
   type : "POST",
   url : "newsletter/subscribe.php",
   dataType : "json",
   async : false,
   data : "sendValue="+str+"&sendVal="+name
}).responseText;

Bu neden oluyor ek bir açıklama olmaksızın, bu deneyin:

$(document).ready(function(){  
        $("#newsletterform").validate();  
        $('#Submit').click(function(e){  // added the e paramenter
            var name = $('#newsletter_name').val();  
            var email = $('#newsletter_email').val();  
             sendValue(email,name);
            e.stop(); // dont submit the form normaly
        });  
}); 

Firebug varsa, onun konsol data2 klasörünü yazmak ve ne olduğunu görmek:

function(data2) {  
    console.log(data2);
    $('#display').html(data2.returnValue);  
}

(- Orada göreceksiniz o hata varsa) ek olarak, sizin php dosya ham tepkisini görmek için kundakçı net panelini kullanabilirsiniz.