我有一个使用X-editable进行内联编辑的表格,一切正常,包括提交给数据库的值,但由于某种原因,它会在else部分显示我的回显。
这是我的PHP代码:
require("config.php");
$userid = $_SESSION['user']['id'];
$sql = "SELECT fb_url, tw_url, ggl_url FROM social_preferences WHERE user_id = :userID";
$stmt = $db->prepare($sql);
$stmt->bindParam(":userID", $userid, PDO::PARAM_INT);
$stmt->execute();
$result = $stmt->fetch();
$pk = $_POST['pk'];
$name = $_POST['name'];
$value = $_POST['value'];
if(!empty($value)) {
try // save user selection to the database
{
$stmt = $db->prepare("UPDATE social_preferences SET tw_url = :twurl WHERE user_id = :userID");
$stmt->bindParam(":userID", $pk, PDO::PARAM_INT);
$stmt->bindParam(':twurl', $value);
$stmt->execute();
header("Location: admin-social.php");
die("Redirecting to admin-social.php");
} catch(PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); }
}else {
echo 'Something went wrong!';
var_dump($value);
}
这是我的HTML代码:
<a name="tw-url" id="tw-url" data-type="text" data-pk="<?php echo ($userid);?>" title="Edit"><?php echo ($result['tw_url']);?></a>
就像我上面所说的,一切似乎都在工作,但它会重定向到一个显示我的echo Something went wrong!
的页面,即使它将值提交给DB。我包含了var_dump以查看是否存在值并返回NULL。有人可以帮帮我吗?任何想法为什么它会向数据库提交正确的值但重定向到我的错误?
此外,它在什么时候将其发送到数据库?我有一个带有保存按钮的表格,但是当我打开可编辑文本并提交新值时,它是否会从弹出窗口保存或当我单击表格中的保存按钮时发送到数据库?
答案 0 :(得分:1)
else
语句正在执行,因为当您的详细信息插入到数据库中时,您已将header
设置为重定向到同一页面,在这种情况下,变量$value
值设置为空并执行else
语句。
只有将header
设置为同一页面时,上述答案才有效。