为了账号安全,请及时绑定邮箱和手机立即绑定

如何刷新页面并发送变量

如何刷新页面并发送变量

千巷猫影 2021-12-12 18:10:33
我有一个 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')";                                   }           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过相同的结果
查看完整描述

2 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

你为什么不试试:

header('Location: modifDistBase.php?dist_base='.$dist_base);

您可以立即重定向到页面 + 变量,而不是 echo javascript


查看完整回答
反对 回复 2021-12-12
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

有一些事情需要修复你的代码

请注意您输出的 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 字符串中。(顺便说一句,你也忘记了双引号)

如果您对您的 javascript 有疑问,您可以在浏览器上检查页面并查看它(右键单击并“检查元素”或“分析元素”)。

请注意,不建议您获取用户输入并像在 SQL 指令中那样使用它。在将它们放入 sql 之前,您应该进行一些清理并使用准备好的语句或转义这些值。

也就是说,您所做的 javascript 重定向看起来有点奇怪,也许您可以在不要求客户端这样做的情况下从 php 脚本重定向。查看头文件 php 函数以获取有关重定向完成服务器端的说明。


查看完整回答
反对 回复 2021-12-12
  • 2 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信