2016-05-25 13 views
0

ajaxでは、項目の1行を追加して入力のid値を課します(phpを開くボタンに接続されていますその特定のアイテムカードを持つページ)。 最初のエントリ(追加による)は正常です:アイテムは正しく表示され、そのIDはボタン に正しく割り当てられていますが、後続の行に次の項目を追加すると、 itemは機能しません。これらのidのすべてがall(id_item = 1 & id_item = 2 & id_item = 3 ...)の値を持ちます。 append関数は属性の設定を保持しません。jquery:追加された入力の値を一度に1つずつ追加する

$.ajax({ 
... 
success: function(id_item) { 
    var row_appended = (
     '<tr class="class_tr" id="id_tr">' + 
      '<td width="90%">NEW ITEM</td>' + 

      '<td width="10%">' + 
       '<form method="GET" action="see_item.php">' + 
       '<input type="hidden" name="id_item" class="id_item" value=0>' + 
       '<button type="submit" class="button_change_item" title="see item">See item</button>'+ 
       '</form>' + 
      '</td>' + 

     '</tr>' 
     ); 

    //$(append).appendTo('table#tabella_elenco_clienti'); 
    //OR: 
    $("#table_items").last().append(row_appended); 

    //$('table#table_items tr :input[value="0"]').val(id_item); 
    //OR: 
    $('#table_items tr:last :input.id_item').val(id_item); 
}, 
    error: function(){ 
    alert("Error!!!"); 
    } 
}); 
+0

.on jqueryのアクションは、実際のHTMLを見て参考になるが、jQueryのラインの両方が間違っているように見えます。最初の行は、最後の行の後ではなく、テーブルの最後の行の内側に新しい行を追加するようです。 2番目のjquery行は有効ではないようで、必要なはずです。 2番目の問題を修正するには、生成されたHTMLを変更する必要があります: ''' + ' – Anialation

+0

Basicあなたがしようとしているものの例:[JS Fiddle](https://jsfiddle.net/xxhwo6kh/) – Anialation

+0

@Anialation、ありがとうございます。しかし、あなたのスクリプトでは、すべての項目が同じIDを持っています。項目n。 2は異なるIDを持っています(ajax経由でPHPページを収集します)、スクリプトは同じIDを設定します:-( –

答えて

0

あなたの問題は、それがjqueryのやJScript実行時にだアペンド機能ではありません:同梱 は、私が使用するコードです。 これらの追加IDは.clickのために存在しません。これは、DOMにないため、jqueryを使用する必要があります。.live |代わりに.click

juqery.on

+0

私はあなたがフォームではなく実行ごとにサブミットボタンを作成しているのですが、同じ名前を持つ1つのビークですべての隠し入力を提出することに留意してください – Caius

関連する問題