我创建了一个表格,弹出窗口无法使用xeditable插件进行编辑,并尝试使用ajax调用数据库提交我的数据。以下是我的表行代码:
echo "<td><a href=\"#\" id='sel' data-pk=\"$row[loan_id]\">" . $row['loan_status'] . "</a></td>";
我试过调试,在firefox的网络选项卡中,我可以看到发布的数据如下: 表格数据: 名称:&#34; loan_amount&#34; 价值:&#34; 2000&#34; pk:&#34; 1&#34;
但是post.php的响应是这个字段是必需的。这是我的post.php代码
$pk = $_POST['pk'];
$name = $_POST['name'];
$value = $_POST['value'];
/*
Check submitted value
*/
if(!empty($value)) {
$result = mysql_query('update k_loans set '.mysql_escape_string($name).'="'.mysql_escape_string($value).'" where loan_id ="'.mysql_escape_string($pk).'"');
print_r($_POST);
} else {
echo "This field is required!";
}
我的可编辑插件的jquery代码如下:
$(document).ready(function() {
//toggle `popup` / `inline` mode
$.fn.editable.defaults.mode = 'popup';
$('#loan a').editable({
type: 'text',
name: 'loan_amount',
url: '../payments/post.php',
title: 'Enter amount',
ajaxOptions: {
type: 'put'
}
});
});
但我无法理解这个问题,因为查询对我来说似乎完全没问题,但数据库仍然没有得到更新。
任何可以指导我正确方向的人。感谢
答案 0 :(得分:0)
xeditable在他们的github上提供的脚本的第一个问题是使用mysql这些天使用是不安全的。所以我把所有这些都转移到使用mysqli。以下是任何人参考的工作代码:
<?php
$server = "localhost";
$username = "user";
$password = "pass";
$database = "db";
$con = new mysqli($server,$username,$password,$database);
if (!$con){
die('Could not connect: ' . mysqli_connect_error($con));
echo "Cudnt cnnect";}
else{
echo "connected";
}
var_dump($_POST);
$pk = $_POST['pk'];
$name = $_POST['name'];
$value = $_POST['value'];
/*
Check submitted value
*/
if(!empty($value)) {
if ($result = mysqli_query($con,'update k_loans set '.mysqli_real_escape_string($con,$name).'="'.mysqli_real_escape_string($con,$value).'" where loan_id ="'.mysqli_real_escape_string($con,$pk).'"'));
{
echo "Update successful";
}
mysqli_close($con);
print_r($_POST);
} else {
echo "This field is required!";
}
?>