2010-11-18 21 views
4

Çalışmak için aşağıdaki PHP + jQuery'yi alamıyorum - tek yapmam gereken betiği ajax ile geçirmek ve php almak Bu, eşleşmeleri kontrol edin ve skor 1'e ekleyin. PHP + Jquery - ajax ile php arasındaki değeri geçmek ve değişkene karşı kontrol edin

Bu

Yazdığım kodu: Yardım için

<?php 
$score = "1"; 

$userAnswer = $_POST['name']; 

if ($_POST['name'] == "145"){ 
    $score++; 
}else{ 
    //Do nothing 
} 

echo $score; 

?> 


<script type="text/javascript"> 

$(document).ready(function() { 

    $("#raaagh").click(function(){ 

    var value = "145"; 

    alert(value); 

    $.ajax({ 
     url: 'processing.php', //This is the current doc 
     type: "POST", 
     data: ({name: value}), 
     success: function(){ 
      location.reload(); 
     } 
    }); 


    }); 
}); 

</script> 

<p id="raaagh">Ajax Away</p> 

Teşekkürler, ben her iki örnekte de POST için GET değişti ve hiçbir sevinç ettik - Başka bir sorun var.

+0

Ve tam olarak ne 2 sorun? –

+0

Sorunların açıklanmasından sorulmayan sorular cevap vermek zor. "Çalışmıyor" yeterince iyi bir açıklama değil. –

cevap

17

İlk $ _POST [ 'isim'] için $ GETin [ 'name'] değiştirerek sorunu çözmek mümkün olmalıdır: ... don karanlık çağlara geri gitme HTML oluşturmak ve bir ajax isteğine yanıt vermek için aynı komut dosyasını kullanmayın.

Yapmaya çalıştığınız şey hakkında hiçbir şey ifade edemiyorum ... Kodunuzu değiştirmeme izin verin, böylece en azından bir anlam ifade edin ve neler olup bittiğini belgeleyin. Sorun, başarı işleyicinizden location.reload çağıracağınız gibi görünüyor.

// ajax.php - adı parametresi 145, eğer Çıkışlar 1 aksi (????)

<?php 
$score = "1";  
$userAnswer = $_POST['name'];  
if ($_POST['name'] == "145"){ 
    $score++; 
}  
echo $score;  
?> 

// test.html

<script type="text/javascript"> 
$(document).ready(function() {  
    $("#raaagh").click(function(){  
     $.ajax({ 
      url: 'ajax.php', //This is the current doc 
      type: "POST", 
      data: ({name: 145}), 
      success: function(data){ 
       // Why were you reloading the page? This is probably your bug 
       // location.reload(); 

       // Replace the content of the clicked paragraph 
       // with the result from the ajax call 
       $("#raaagh").html(data); 
      } 
     });   
    }); 
}); 

</script> 

<p id="raaagh">Ajax Away</p> 
+0

Bana sadece büyük bir baş ağrısını kurtardın - Ben hala kendini yeniden yükleme olayını kullanıyorum, bu yüzden hata değildi - ama başka her şey değişti. TEŞEKKÜR EDERİM! – Richard

+1

"Başka herhangi bir şey değişti" artık ajax çağrısı için sayfanın html bölümünü vermemeniz gerçeği. –

2

jQuery'nizde POST kullanıyorsunuz, ancak php'de bir GET almayı deniyorsunuz.

BTW Bir GET/POST değişkeninin okunmadan önce ayarlanıp ayarlanmadığını kontrol etmek iyi bir uygulamadır. isset() işlevini kullanarak .

0

$_POST ile değiştirin ve işte buradasınız. Temel olarak POST ve GET değişkenleri bir betiğe geçirmenin iki farklı yoludur. Php'de get metodu, bir url: script.php?variable=value'un sonunda da eklenebilir ve hacklemek gerçekten kolaydır. Post yöntemi formlar veya ajax çağrıları ile gönderilebilir ve oldukça güvenlidir, en azından daha fazladır. Ayrıca, çağrı yapmadan önce bir GET veya POST değişkeninin ayarlandığını kontrol etmenizi öneririm, böylece aptal bildirim hatalarını önleyebilirsiniz. her zaman gerekli değildir else bloğu beri Ayrıca senaryonun

}else{ 
// do nothing 
} 

bölümünü silebilirsiniz

if (isset($_POST['var']) and !empty($_POST['var'])) { // do something } 

:

Sadece aşağıdaki kodu kullanabilirsiniz.

0

Verileri bir Ajax POST ile gönderiyorsunuz ancak bir GET'den okumaya çalışıyorsunuz. Ajax çağrınızda type: "GET" veya PHP'nizde $_POST['name'] kullanın.

0

Sorun, jQuery değerini POST olarak kullanmaktır, ancak GET ile okuyorsunuz.

Sen hepsinden

İlgili konular