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++;

数据库将大量记录返回到该表中,我创建了 5 个函数 update1、update2 等

有没有办法修改我的 jquery 以将不同的 id 值传递给一个函数?而不是一遍又一遍地复制函数?

谢谢

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 回答