0

PHPによって生成されたフォームが多数あり、それぞれに[返信]ボタンが必要な場合、フォームのコンテンツをajax経由で別のphpページに送信します。これらすべての要素に、同じjavascriptスニペットを使用できますか?

<form id="foo">
    <label for="bar">A bar</label>
    <input id="bar" name="bar" type="text" value="" />
    <input type="submit" value="Reply" />
</form>

したがって、次のようなことをした場合でも、すべての応答を個別に処理し、「応答」がクリックされた要素にのみ応答を表示できますか?

$("#foo").submit(function(event){
    $.ajax({
        url: "/form.php",
        type: "post",
        data: serializedData,
        // callback handler that will be called on success
        success: function(response, textStatus, jqXHR){
            // log a message to the console
            console.log("Hooray, it worked only in the element it was clicked in!");
        });
    // prevent default posting of form
    event.preventDefault();
 });
4

2 に答える 2

0

ページ上のすべてのフォームを処理する場合は、コードを小さな変更で処理できます。

$("form").submit(function(event){
    $.ajax({
        url: "/form.php",
        type: "post",
        // You have to have a way to retrieve the form data
        data: getFormData(form),
        success: function(response, textStatus, jqXHR){
            console.log("Hooray, it worked only in the element it was clicked in!");
        });
    // prevent default posting of form or just return false
    event.preventDefault();
 });
于 2012-10-22T23:48:17.960 に答える
-1

いいえ、フォームの送信には複数の方法があります。最初の行を次のように変更します。

$("#replybutton").click(function(event){

次に、そのreplybutton idをボタンに追加する必要があり、ajax呼び出しのデータ要素を明示的にリストする必要があります。また、event.preventDefault()不要になります。考えてみると、<form>タグ全体も不要です。

フォームを使用してこれを行う方法は他にもありますが、これが最も簡単です。

于 2012-10-22T23:40:30.410 に答える