我正在尝试使用一个 update_form.php
页面来处理网站的3个独立但相同的区域。例如:
我有3个数据页: data1.php, data2.php, data3.php
。所有链接到update_form.php。提交update_form.php并将新数据存储在数据库中后,我将使用哪些代码重定向回相应的数据页。
如果我正在更新 data1.php
,在我提交更新表单后,我想返回该页面。需要使用 PHP和MYSQL来执行此操作。感谢任何帮助。
以下是我与Dreamweaver合作的代码。你能帮我编辑做我上面提到的。目前,无论我输入何种表单,我都只能重定向到 data1.php
:
$updateGoTo = "data1.php";
if (isset($_SERVER['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $updateGoTo));
}
答案 0 :(得分:0)
一种方法是使用Ajax。您只需将数据发布到update_form.php并相应地更新页面。你不必处理重定向。
例如,使用jQuery,它将类似于:
$.post("update_form.php", { field1: "value1", field2: "value2" })
.done(function(data) {
// update your page here
});
如果您不想走这条路线,您可以做的就是将页面的网址与其他表格参数一起传递。您可以将其添加为表单中的隐藏输入。
<form action="update_form.php" method="POST">
<input type="hidden" value="[URL]" name="redirect_url">
<input type="text" value="OTHER VALUE">
...
</form>
然后在您的服务器上,您可以在$ _POST [&#39; redirect_url&#39;]中检索网址并执行以下操作:
header('Location: ' . $_POST['redirect_url']);
只需确保清理redirect_url,否则这可能是一个安全漏洞:)
答案 1 :(得分:-1)
使用php / mysql只需使用header();
,如下所示
示例采取data1.php具有以下代码
<?php session_start(); // session value to check the return msg from update_form.php
if(!empty($_SESSION['msg']){
echo '<div style="">'.$_SESSION['msg'].'</div>;
unset($_SESSION['msg']); // destroy msg after being visible to user
} ?>
<html>
<form action="update_form.php">
<input type="text" name="FullName" pattern="" />
<input type="submit" value="update" />
</html>
然后在update_form.php中,您将拥有以下代码。
<?php session_start();
//Run your DB connection, eg i use mysqli
if(!empty($_POST)){
$name = mysqli_real_escape_string($link,$_POST['FullName'];
//run your update query successful
$msg = "Data updated successfully..";
}
else{
$msg = "Updation of data encounter error plz try again..";
}
$_SESSION['msg'] = $msg; // variable to return msg to user in other page
header("location: data1.php"); //this functin require page reload, if you know jquery is the best opt for this