我有一个php页面,在这里我按一个按钮在另一页上编辑mysql db记录: 页面名称'distintaBase.php' 这里有一个名称列表,即产品名称。每个产品包含一个组件列表。 当我按下一种产品的编辑按钮时,我将重定向到新页面“ modifDistBase.php”。
<a href="modifDistBase.php?dist_base=<?php echo $dist_base; ?>"></a>
$ dist_base变量被传递到新页面。我在页面标题上使用
<h2>Modifica distinta base <?php echo $_GET['dist_base']; ?></h2>
然后加载mysql数据库
<?php
$dist_base = $_GET['dist_base'];
$sql = "SELECT $dist_base.Id, $dist_base.Designator, $dist_base.Quantity, $dist_base.Description, $dist_base.Package,
$dist_base.Manufacturer, $dist_base.Pn_Manufacturer, $dist_base.Pn_Utterson, $dist_base.Mounted
FROM $dist_base";
?>
按下添加按钮,我添加了一个新组件
if(isset($_POST['add_item'])){
$designator = $_POST['designator'];
$quantity = $_POST['quantity'];
$description = $_POST['description'];
$package = $_POST['package'];
$manufacturer = $_POST['manufacturer'];
$pn_manufacturer = $_POST['pn_manufacturer'];
$pn_utterson = $_POST['pn_utterson'];
$mounted = $_POST['mounted'];
$sql = "INSERT INTO $dist_base (designator,quantity,description,package,manufacturer,pn_manufacturer,pn_utterson,mounted)
VALUES ('$designator','$quantity','$description','$package','$manufacturer','$pn_manufacturer','$pn_utterson','$mounted')";
if ($conn->query($sql) === TRUE) {
echo '<script>window.location.replace("modifDistBase.php?dist_base=" + $dist_base.value)</script>';
} else {
echo "Errore: " . $sql . "<br>" . $conn->error;
}
}
JavaScript可能有问题。
echo '<script>window.location.replace("modifDistBase.php?dist_base=" + $dist_base.value)</script>';
新组件已添加到数据库(例如,具有#5 id),但未显示在页面modifDistBase.php
上如果我在浏览器或f5上按刷新,现在我可以看到新组件(#5 id),但是在数据库中添加了一个新组件#6,其项与#5相同
PS
-标头已由菜单页面发送
-尝试过window.location.href
,但结果相同
答案 0 :(得分:3)
为什么不尝试:
header('Location: modifDistBase.php?dist_base='.$dist_base);
您可以立即重定向到页面+变量,而不是echo javascript
答案 1 :(得分:1)
您的代码中有一些要解决的问题
注意您输出的javascript
echo '<script>window.location.replace("modifDistBase.php?dist_base=" + $dist_base.value)</script>';
将精确地
<script>window.location.replace("modifDistBase.php?dist_base=" + $dist_base.value)</script>
无需检查与目标相关的js的正确性,马上就可以看到您应该写的代替
echo '<script>window.location.replace("modifDistBase.php?dist_base="' . $dist_base . '")</script>';
将php值注入到javascript字符串中。 (您也忘记了b.t.w的双引号)
如果您对javascript存有疑问,可以在浏览器中检查并查看页面(右键单击并单击“检查元素”或“分析元素”)。
请记住,不建议您接受用户输入并按SQL指令中的说明使用它。在将它们放入sql之前,应该进行一些清理并使用准备好的语句或对这些值进行转义。
也就是说,您执行的javascript重定向看起来有些奇怪,也许您可以从php脚本进行重定向而无需要求客户端这样做。查看标头php函数以获取有关服务器端重定向完成的说明。