【发布时间】:2015-01-10 18:39:21
【问题描述】:
我创建了一个表格,我可以在其中编辑 td 并且效果很好。我编辑了产品名称,它只是在我的网页上成功更改,但它没有更新到数据库中。
我的数据库是这样的:
这是td内部的编辑代码。
$results = $mysqli->query("SELECT * FROM productList");
while($row = $results->fetch_assoc()) {
<td> <span class="edit" id="'.$row['ID'].'"> '.$row['name'].' </span> </td>
}
为了可编辑,我必须使用 AJAX 来回调该值。像这样的:
jQuery(document).ready(function() {
$.fn.editable.defaults.mode = 'popup';
$('.edit').editable();
$(document).on('click','.editable-submit',function(){
var x = $(this).closest('td').children('span').attr('id');
var y = $('.input-sm').val();
var z = $(this).closest('td').children('span');
$.ajax({
url: "edit.php?id="+x+"&data="+y,
type: 'GET',
success: function(s){
if(s == 'status'){
$(z).html(y);}
if(s == 'error') {
alert('Error Processing your Request!');}
},
error: function(e){
alert('Error Processing your Request!!');
}
});
});
});
在 AJAX 之后,我必须调用 url 到 edit.php。 edit.php 的代码如下:
$mysqli = new mysqli('localhost','root','root','database_name');
if ($mysqli->connect_error) {
die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}
if($_GET['id'] and $_GET['name'])
{
$id = $_GET['id'];
$name = $_GET['name'];
if ($mysqli->query("UPDATE productList SET name='$name' WHERE ID='$id'"));
$mysqli->close();
echo 'success';
}
我尝试在 phpmyadmin 中手动更新,它在那里运行良好。但不是在这里。它现在应该可以工作了。我错过了什么吗?
【问题讨论】:
-
在尝试更新行时检查mysqli是否抛出错误。
-
你能告诉我如何抛出,因为我正在使用 AJAX,我对 AJAX 太陌生了。我试过在edit.php中抛出一个错误,但它没有显示任何错误:/