当我在AJAX中调用一个函数时,显示消息错误"未定义的索引:id",但是如果在视图中我有一个按钮,它可以工作,但是当我有两个按钮显示时我这个错误。问题是什么?我需要为此创建一个数组或任何解决方案吗?
<tbody>
<?php foreach ($fotos_concurso as $fotos) { ?>
<tr>
<td><img width="200" height="200" src="<?php echo base_url('/uploads/'.$fotos['nombre_archivo']); ?>"></td>
<td><?php echo $fotos['nombre']; ?></td>
<td><a class="aprobar_foto" href="<?= base_url('admin/aprobar_foto') ?>" id="<?php echo $fotos['id'] ?>" title="aprobar"><i class="icon-trash"></i></a></td>
<td><a class="desaprobar_foto" href="<?= base_url('admin/desaprobar_foto') ?>" id="<?php echo $fotos['id'] ?>" title="desaprobar"><i class="icon-trash"></i></a></td>
</tr>
<?php } ?>
</tbody>
和AJAX代码
$('.aprobar_foto').on('click', function() {
q = $(this);
if (confirm('¿Quieres aprobar la foto?')) {
$url = q.attr('href');
$.ajax({
type: "post",
url: $url,
cache: false,
data: "id=" + q.attr('id'),
fail: function () {
alert('Ha habido un error al borrar el registro');
},
success: function (redir) {
window.location = redir;
}
});
}
return false;
});
$('.desaprobar_foto').on('click', function() {
q = $(this);
if (confirm('¿Quieres desaprobar la foto?')) {
$url = q.attr('href');
$.ajax({
type: "post",
url: $url,
cache: false,
data: "id=" + q.attr('id'),
fail: function () {
alert('Ha habido un error al borrar el registro');
},
success: function (redir) {
window.location = redir;
}
});
}
return false;
});
答案 0 :(得分:0)
设置您的ID字段:
var id = q.attr('id');
data: {id: id},
答案 1 :(得分:0)
我不确定但是一旦使用这种类型: -
var ids = q.attr('id');
data: {id: ids},
答案 2 :(得分:0)
1)有些方法是错误的,例如id在整个页面中应该是唯一的,如果某个属性具有id,则任何其他属性都不应该是相同的id。
2)print_r($ fotos_concurso,1);检查“id”索引是否存在
3)你可以查看控制台日志,每个都应该收集正确的“id”
答案 3 :(得分:0)
您遇到此错误的原因可能是因为您对两个按钮都使用了相同的ID(#)。
使用'data-id'
,而不是使用ID来存储 foto_id 值你可以做的是给他们相同的类,不同的href值,'数据值'和1个常见的On Click功能。
所以,你的HTML将是这样的:
btn_foto 是两个按钮中的常见类,而不是 id , data-id
<tbody>
<?php foreach ($fotos_concurso as $fotos) { ?>
<tr>
<td><img width="200" height="200" src="<?php echo base_url('/uploads/'.$fotos['nombre_archivo']); ?>"></td>
<td><?php echo $fotos['nombre']; ?></td>
<td><a class="btn_foto" href="<?= base_url('admin/aprobar_foto') ?>" data-id="<?php echo $fotos['id'] ?>" title="aprobar"><i class="icon-trash"></i></a></td>
<td><a class="btn_foto" href="<?= base_url('admin/desaprobar_foto') ?>" data-id="<?php echo $fotos['id'] ?>" title="desaprobar"><i class="icon-trash"></i></a></td>
</tr>
<?php } ?>
</tbody>
和你的Ajax Javascript:
$('.btn_foto').on('click', function() {
q = $(this);
if (confirm('¿Quieres aprobar la foto?')) {
$url = q.attr('href');
$.ajax({
type: "post",
url: $url,
cache: false,
data: "id=" + q.attr('data-id'),
fail: function () {
alert('Ha habido un error al borrar el registro');
},
success: function (redir) {
window.location = redir;
}
});
}
return false;
});
注意:“数据值”是数据属性,它们应优先于“类”和“ids”来存储值。 “数据属性”可以是唯一的或相同的值,因为它们没有任何限制。