这里的第一个计时器,首先尝试在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 ."\"/> ";
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等
有没有办法修改我的jquery以将不同的id值传递给一个函数?而不是一遍又一遍地复制功能?
由于
答案 0 :(得分:1)
您可以使用attribute starts with 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);
});
});
答案 1 :(得分: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);
});
});
答案 2 :(得分: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 ."\"/> ";
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++;