2

ここで最初のタイマー、最初にphp/jqueryで試してください

このコードは機能しています:

$('#update1').click(function(){
    var name= $('#bandname-1').val();
    var bandid = $('#bid-1').val();
    var mbid = $('#mbid-1').val();
    $('#msg').text('updating...');
    $.post('func/update_bandname.php',{
        name: name,
        bandid: bandid,
        mbid: mbid
    }, function(data){
        $('#msg1').text(data);
    });
});

これは私のphpです:-snip

echo "<td>";
echo "<input type=\"text\" name=\"bandname-".$i."\" id=\"bandname-".$i."\" value=\"".$name ."\"/>&nbsp;";
echo "<input id=\"update".$i."\" type=\"button\" name=\"update".$i."\" value=\"update\" class=\"dp\"/>";
echo "<span id=\"msg".$i."\"></span><input type=hidden id=\"bid-".$i."\" value=\"".$_REQUEST[bid] ."\" name=bid-".$i."\" />";
echo "<input type=hidden id=\"mbid-".$i."\" value=\"".$bandid."\" name=mbid-".$i."\" />";
echo "</td>";
echo "</tr>";
$i++;

DBはこのテーブルに多くのレコードを返し、私は5つの関数update1、update2などを作成しました

1つの関数に異なるID値を渡すようにjqueryを変更する方法はありますか?関数を何度もコピーする代わりに?

ありがとう

4

3 に答える 3

1

selector で始まる属性を使用できます。

$('input[id^=update]').click(function() {
   var id = this.id.match(/\d+/g).join('');
   var name= $('#bandname-'+id).val();
   var bandid = $('#bid-'+id).val();
   var mbid = $('#mbid-'+id).val();
   $('#msg').text('updating...');
   $.post('func/update_bandname.php', {
            name: name,
            bandid: bandid  ,
            mbid:mbid
   }, function(data) {
            $('#msg'+id).text(data);
   });
});

ただし、ID の代わりにクラスを使用する方がよいでしょう。

$('.update').click(function() {
   var $this = $(this);
   var name = $this.siblings('.bandname').val();
   var bandid = $this.siblings('.bid').val();
   var mbid = $this.siblings('.mbid').val();
   $('#msg').text('updating...');
   $.post('func/update_bandname.php', {
            name: name,
            bandid: bandid  ,
            mbid:mbid
   }, function(data) {
            $this.siblings('.msg').text(data);
   });
});
于 2012-09-25T21:34:19.077 に答える
1

各要素に共通のクラスとdata-属性を割り当てます。

PHP:

echo '<input class="updatebutton dp" data-idnum="'.$i.'" id="update'.$i.'" type="button" name="update'.$i.'" value="update">';

JS:

$('.updatebutton').click(function() {
   var id = $(this).data('idnum'),
       name= $('#bandname-'+id).val(),
       bandid = $('#bid-'+id).val(),
       mbid = $('#mbid-'+id).val();
   $('#msg').text('updating...');
   $.post('func/update_bandname.php', {
            name: name,
            bandid: bandid  ,
            mbid:mbid
   }, function(data) {
            $('#msg'+id).text(data);
   });
});
于 2012-09-25T21:41:07.790 に答える
0

JS:

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(function() {
  $('form').submit(function(data) {
    $.post('func/update_bandname.php', $(this).serialize(), function(data) {
       $('#msg1').text(data);
    });
  });
});
</script>

PHP:

echo "<tr>";
echo "<td>";
echo "<form>";
echo "<input type=\"text\" name=\"bandname-".$i."\" id=\"bandname-".$i."\" value=\"".$name ."\"/>&nbsp;";
echo "<input id=\"update".$i."\" type=\"button\" name=\"update".$i."\" value=\"update\" class=\"dp\"/>";
echo "<span id=\"msg".$i."\"></span><input type=hidden id=\"bid-".$i."\" value=\"".$_REQUEST[bid] ."\" name=bid-".$i."\" />";
echo "<input type=hidden id=\"mbid-".$i."\" value=\"".$bandid."\" name=mbid-".$i."\" />";
echo "</form>";
echo "</td>";
echo "</tr>";
$i++;
于 2012-09-25T21:42:26.843 に答える