javascript
  • jquery
  • 2012-03-23 17 views 0 likes 
    0

    テーブルが動的に読み込まれています。各行には編集可能な2つのテキストフィールドがあります。ユーザーが保存ボタンをクリックすると、私はアルを読みたいと思うものは値を入力し、それに応じて更新:テーブル内で動的に生成されるテキストフィールドの値とIDを取得

    echo "<td><input value='".$row[0]."' type='hidden'>$sql1[0]</td><td>$sql1[1]</td> 
        <td><input type='text' id='disc-".$row[0]."' value='".$row[3]."'></td> 
    

    $row[0]は、データベース内のその行のIDであると$row[3]は、現在格納されている値です。私が達成しようとしているのは、ユーザーが保存をクリックすると、ユーザーが入力した値をIDに基づいてテキストフィールドに入力して更新できるようにすることです。

    for(var i = 0; i < $('#order_basket [id |= "disc"]').length; i++) { 
        alert($('#order_basket [id|="disc"]')??.val()); 
    } 
    

    今返された長さが正確であるが、私はidと、さらに配列に格納された値を読み込むしようとしています:それは、これらの要素を選択JavaScriptを持っているために。

    注:

    <td><input type='text' class="field1" id='disc-".$row[0]."' value='".$row[3]."'></td> 
    

    あなたはその後、使用してこれを照会できます:同じ行の1つの以上のテキストフィールドがあり、他のテキストフィールドはid='disc-".$row[0]."'

    答えて

    2

    試すことができますこの。

    var values = {}; 
    $('#order_basket input[id^="disc"]').each(function(){ 
        values[this.id] = this.value; 
    }); 
    

    valuesオブジェクトが

    UpdateはOPのに基づいて、すべての入力要素を見つけるために、私は属性を使用しています

    注セレクタ^=で始まる入力要素のそれぞれのID /値のペアが含まれていますコメント。助けるんが、ちょうどそれを明確にするために

    var ids = [], values = []; 
    $('#order_basket input[id^="disc"]').each(function(){ 
        ids.push(this.id); 
        values.push(this.value); 
    }); 
    
    +0

    、それはどういう意味: '値を[1] = 23' 1はIDで、23が値ですか? – Namit

    +0

    'values'は配列ではなくオブジェクトです。あなたはid [1]の入力要素の値である '23 'を与える​​value [" 1 "]のように使うことができます。 – ShankarSangoli

    +0

    どうすればすべてを別々の配列に保存できますか? id []とvalues []のように? – Namit

    0

    ます。また、クラス名を使用することができてい

    alert($('.field1').val()) 
    

    か:

    alert($('.field1').attr('id') 
    

    (クラス名は一意である必要はありませんので)あなたは1、より多くのがありますかどうかを確認することができます

    alert($('.field1').length) 
    

    次にあなたがループまたは.eachのために使用して値をループ()

    関連する問題