2016-09-04 4 views
0

ここで謎の問題のビットを持たずに再提出することはありません。フォームには、修正されたデータを表示するために更新されるDIVが組み込まれています。Ajaxフォームは</p> <p>は私がフォームを送信するページ上のボタンを構築しました...ページの更新

<form id='itempost_{$item.itemid}_{$item2.itemid}' method='post' class='itempost'> 
    <input type='hidden' name='item' value='{$item.itemid}'> 
    <input class='btn_text' type="submit" value="Send Item"> 
</form> 

JS

$('.itempost').on('submit', function(e) { 

    e.preventDefault(); 
    $.ajax({ 
     type: "POST", 
     url : 'item.php', 
     data: $(this).serialize(), 
     success : function (response) { 
     $("#update").eq(0).load("update.php?&t={$parentid}"); 

     }, 
     error: function (jXHR, textStatus, errorThrown) { 
     alert('not ok'); 
      alert(errorThrown); 
     } 
    }); 
    return false; 
}); 

update.phpを

01:

形態(これはSmartyテンプレート内'S)

すべてのupdate.php containsは、ページを再構築するために必要な最小値です。次に、div #update内にあるテンプレートのセクションを再構築します。

$smarty->display('items.tpl'); 

初めてボタンをクリックしたときは、効果的に動作し、HTMLコンテンツはページに顕著な影響を与えることなく変更されます。

しかし、2回目のクリックはJSの近くにはないようで、ページをリロードするだけです。

第一クリック:次のクリックが、その後のアクションがあると信じて私をリードし、それが必要として働いて設計さ 第二クリックとしてAJAXでフォームを送信する:ページを更新し、何よりも 第三をクリックします:AJAXを送信するフォームを 第4回クリックして、設計通り:、ページを更新しないよりは何も

など

私はここで間違ってやって上の任意のアイデア?私は、JSがすべての機会に存在し、すべてをチェックし、私の数字をグーグルでチェックしていることを確認しました - 私はどこでエラーを見せていないのですか?

+1

で、今完璧に動作しますか? '$( '#update')'は1つの要素でなければなりません。 – putvande

+2

'

'全体を更新している場合、イベントリスナーは新しいものに割り当てられません。 '$(document).on( 'submit'、。itempost '、function(){...})' 'に沿った何かが、jQueryのイベント委任について読んでください。 – yuriy636

答えて

0

ブリリアント。

答えを提供するためにyuriy636に多くの感謝と私のセカンダリコールをきれいにするのを助けるためにputvande。

すべては、なぜあなたは `` $( "#更新")。EQ(0)を行っている

$(document).on('submit', '.itempost', function(e) { 

e.preventDefault(); 
$.ajax({ 
    type: "POST", 
    url : 'item.php', 
    data: $(this).serialize(), 
    success : function (response) { 
    $("#update").load("update.php?&t={$parentid}"); 

    }, 
    error: function (jXHR, textStatus, errorThrown) { 
    alert('not ok'); 
     alert(errorThrown); 
    } 
}); 
return false; 
}); 
関連する問題