我有一个使用 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>
就像我上面所说的,一切似乎都正常,但它会重定向到一个显示我的回显的页面出了问题!
即使它已将值提交给数据库。我包含了 var_dump 来查看是否有值并且返回 NULL。有人可以帮帮我吗?知道为什么它会向数据库提交正确的值但重定向到我的错误吗?
此外,它在什么时候将其发送到数据库?我的表单中有一个带有保存按钮的表格,但是当我打开可编辑文本并提交新值时,当我从弹出窗口保存或单击表格表单中的保存按钮时,它是否会发送到数据库?
最佳答案
else
语句正在执行,因为当您的详细信息插入数据库时,您已经设置了一个重定向到同一页面的 header
,在这种情况下为变量 $value
值设置为空,并且执行您的 else
语句。
仅当您将 header
设置为同一页面时,上述答案才有效。
关于php - 使用 x-editable 将 URL 文本插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25776060/