2017-05-31 17 views
1

同じスクリプトを使用して複数のテキストボックスの値を取得したいとします。私のスクリプトでは、単一のテキストボックスの値を変更する前後にテキストボックス値を取得しています。複数のテキストボックスに同じJavaScriptを書くにはどうすればよいですか?複数のテキストボックス値を取得する方法は?

<div align="center"> 
    <table> 
    <tr> 
     <td> 
     <input type="text" id="bill" name="billid" class="update" 
       value="<?php echo $get['BillID']; ?>"> 
     </td> 
     <td> 
     <input type="text" id="proname" name="productname" class="update" 
       value="<?php echo $get['Productname']; ?>"> 
     </td> 
     <td> 
     <input type="text" id="rate" name="rate" class="update" 
       value="<?php echo $get['Rate']; ?>"> 
     </td> 
     <td> 
     <input type="text" id="quantity" name="quantity" class="update" 
       value="<?php echo $get['Quantity']; ?>"> 
     </td> 
     <td> 
     <input type="text" id="amount" name="amount" class="update" 
       value="<?php echo $get['Amount']; ?>"> 
     </td> 
    </tr> 
    <tr> 
     <td></td> 
     <td></td> 
     <td> 
     <input type="submit" name="submit" value="submit" onclick="sendvalue()"> 
     </td> 
    </tr> 
    </table> 
</div> 

私のスクリプトは、結果を得るために)入力タイプにより取得し、jQuery.eachを(作ってみる

$('#bill').on('focus', function() { 
    $(this).data('val', $(this).val()); 
}); 

function sendvalue() { 
    var prev = $('#bill').data('val'); 
    var current = $("#bill").val(); 
    //alert(prev+";"+current); 

    $.ajax({ 
    type: "POST", 
    url: "updateedit.php", 
    data: ({ 
     previous: prev, 
     currentvalue: current, 
    }), 
    success: function(data) { 
     alert(data); 
    }, 
    error: function() { 
     alert('failed'); 
    }    
    }); 
} 
+0

(代わりに、単一のオブジェクトの配列を受け取るためにあなたのPHPコードを変更する)sendvalue関数を呼び出すと、バックエンドへの一括アップデートにすべての値をオブジェクトの配列を送信することができますコメント:あなたは実際にあなたの質問に対する[受諾](https://meta.stackexchange.com/q/5234)の回答を調べるべきです。それは将来の訪問者があなたの質問を解決するのに役立つ答え(そしてどちらが役立つか)を見るのに役立ちます。 –

+0

は '$(input [type = text])'や '$(":text ")'セレクタを使用します – inarilo

+0

[AngularJS](https://angularjs.org/)のようなフレームワークを考えましたか?フレームワークはこれをもっと簡単にします。 –

答えて

0

代わりのidセレクタを使用しています。

$.each($("input[type=text]"), function(index, value) { 
     //What you want to do for every text input 
    }); 
0

ファーストクラスupdateですべての入力を選択し、フォーカスイベントのイベントリスタを添付。

その後、あなたはこれがより一般的である

$('input.update').on('focus', function() { 
    $(this).data('val', $(this).val()); 
}); 

function sendvalue() { 
    // Array 
    var postData = []; 
    $('input.update').each(function() { 
    var inp = $(this); 
    postData.push({ 
     previous: inp.data('val'), 
     currentvalue: inp.val() 
    }); 
    }); 

    $.ajax({ 
    type: "POST", 
    url: "updateedit.php", 
    data: postData, 
    success: function(data) { 
     alert(data); 
    }, 
    error: function() { 
     alert('failed'); 
    }    
    }); 
} 
+0

あなたの貴重な答えをありがとう@kapantzak私は私のPHPページでforeach($ _ POST ['postdata']を$ valueとして試してみました。しかし、私はどのように他のものを試すことができるかという価値観はありませんでした。 – arjun

+0

postDataはまだ@kapantzakの値を取得できませんでした。私はそれに打たれました。 – arjun

関連する問題