我如何告诉process.php将该值保存到通过表单传递的"name=newurl"值的下一个&qu



form1.php代码用于传递在表单POST上提交的url,以从管理员端更新iframe.phpiframe src,但process.php没有保留最后的值。当观众再次请求页面iframe.php而不发送表单时(因为他们无法更改提供的url(,返回默认的src,而不是管理员最后发布的表单。

我如何告诉process.php保持该值,直到通过表单传递的name=newurl值的下一个POST

我做了一张表格form1.php

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form name="newurl" action="iframe.php" method="post">
<label for="newurl">Type the new Url</label><br>
<input type="url" id="newurl" name="newurl">
<button type="submit" name="submit" value="submit">Go!</button><br>
</form> 
</body>
</html>

通过从$newurl=$_POST['newurl'];中检索值来更新Iframe的src

则iframe代码CCD_ 11

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="styles.css">
<title>Document</title>
</head>
<body>

<div><p>Click on the blue screen</p></div>
<div id="content">
<iframe width="100%" height="100%" frameborder="0" src="<?php require_once 'process.php' ?>" name="content_frame">
</div>
</body>
</html>

和CCD_ 12

<?php 

if (isset($_POST['submit'])) {
$newurl=$_POST['newurl'];
echo $newurl ;
}
?>

有两种主流做法。

  1. 将post值保存到会话
    注意:当您尝试读取或写入$_session时,必须启动会话,并且不能重复启动,否则将收到警告
// form1.php
session_start();
$_SESSION["newurl"] = $_POST["newurl"];
// process.php
session_start();
$newurl = $_SESSION["newurl"]
echo $newurl;
  1. 将post值保存到数据库中。(跳过示例(

其他

如果你的iframe包含在form1.php中,你也可以使用AJAX来实现你的目标,甚至不需要将post值保存到会话或数据库中。

例如:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form name="newurl" action="iframe.php" method="post">
<label for="newurl">Type the new Url</label><br>
<input type="url" id="newurl" name="newurl">
<button id="submitButton" type="submit" name="submit" value="submit">Go!</button><br>
</form>
<iframe width="100%" height="100%" frameborder="0" src="" name="content_frame"></iframe>
<script>
function alterSubmit(event) {
// prevent default submit 
event.stopPropagation();
event.preventDefault();
let newurl = document.querySelector("#newurl").value;
let iframe = document.querySelector("iframe");
let fd = new FormData();
fd.append("submit", "");
fd.append("newurl", newurl);
fetch("/path/to/process.php", {
method: "POST",
body: fd
}).then(
r => r.text()
).then(r => {
// change iframe src   
iframe.src = r;
});
}
document.querySelector("#submitButton").onclick = e => {
alterSubmit(e);
}
</script>
</body>
</html>
// process.php
if (isset($_POST['submit'])) {
$newurl=$_POST['newurl'];
echo $newurl ;
}

相关内容

最新更新