$. Göndermekten şey ilanıyla değil

2 Cevap php

i user_submit.php açıklama göndermek için aşağıdaki jquery kullanıyorum

var submit = document.getElementById("submit_js");
	var comment = document.getElementById("comment");

	$("#submit").bind('click', function(){
		$.post("user_submit.php", {
	  		comment: $("#comment").text()
		});
	});

user_submit.php gibi dinler:

$comment = htmlspecialchars($_POST["comment"]);

i oluyor hiçbir POST olduğunu kundakçı konsolunda görebilirsiniz. ben farklı bir işlev için kullanabileceğiniz tek bir GET (bu suçlu olabilir?)

2 Cevap

Varsayarsak:

<input type="text" id="comment">
<input type="button" id="submit_js">

İstediğiniz:

$(function() {
  $("#submit_js").click(function() {
    $.post("user_submit.php", {
      comment: $("#comment").val()
    });
  });
});

PHP:

<?php
$comment = $_POST['comment'];
//...
echo htmlspecialchars($comment); // nothing catches this currently
?>

Ayrıca kodu "teslim" ve "submit_js" kafa karıştırıcı gibi görünüyor. Ben Javascript ve jQuery kodu gereksiz yere çok ("getElementById ()" iş) karıştırma karşı tavsiye ediyorum. Sen jQuery selectors ile öğrenmeniz gerekir. Örneğin:

$("#submit_js")

ve kimliği ile (should sadece sıfır veya bir element olabilir) tüm unsurları ile bir jQuery nesne yaratacak submit_js.

AJAX yoluyla gönderme konum unutmayın, böylece geri alan değeri yankılanan konum bile $. Sonrası geri arama bunun için dinliyorsanız sürece, o ekranda gösterilmez.

Ne sorun olabilir kontrol etmek için, jQuery olmadan normal formu gönderin. PHP komut alan değeri geri yankılanan ise, PHP komut dosyası çalışıyor - Lütfen JavaScript kontrol edin. Print_r () kullanırken boş, ya da boş bir dizi alıyorsanız, o zaman formda alan adı PHP komut dosyası kullanarak konum ne gibi aynı olduğundan emin olun.

Eğer kodu yeniden yazmak zorunda istiyorum, ama burada yapmam tavsiye ne etmeyin.

<form class="comments" method="post" action="user_submit.php">
    <input type="text" name="comment" />
    <input type="submit" value="Submit" />
</form>

JavaScript:

$('.comments').submit(function() {
    var $form = $(this);

    $.post(
        $form.attr('action'),
        $form.serialize(),
        function(data, status) {
            console.log(data);
        }
    );

    return false;
}

Bu PHP komut dosyası için form sunacaktır. Geri arama işlevi, "veri" PHP script döndü veridir. Geri alan değeri echo Yani, Firebug konsolu değerini gösterecektir.

Durumunda kullanıcının tarayıcı JavaScript devre dışı vardır, form hala düzgün sunacaktır. Tabii ki PHP script istek yöntemine bağlı olarak düzgün işleyebilir böylece formun AJAX yoluyla gönderildiğini olup olmadığını kontrol etmesi gerekir. Test etmek için kolay bir yolu X-istenen-ile başlık için kontrol etmektir. Bu AJAX yoluyla gönderilmişse, değer XMLHttpRequest olacaktır.