如何解决我如何告诉process.php保留该值,直到“ name = newurl”值的下一个“ POST”值通过表单传递FORM POST UPDATE IFRAME URL SRC 其他
form1.php
代码可通过管理员POST
传递在iframe src
表单上提交的网址,以更新iframe.php
的{{1}},但process.php
不是保留最后的值。当观众再次请求发送页面的页面iframe.php
时(因为他们无法更改所提供的url),则返回默认的src而不是管理员最后发布的表单。
我如何告诉process.php保留该值,直到POST
值的下一个name=newurl
通过表单传递为止。
我做了一个表格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代码iframe.php
<!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>
和process.php
<?php
if (isset($_POST['submit'])) {
$newurl=$_POST['newurl'];
echo $newurl ;
}
?>
解决方法
有两种主流做法。
- 将帖子值保存到会话中。
通知:尝试读取或写入$ _SESSION时必须启动会话,并且无法重复开始,否则会收到警告。
// form1.php
session_start();
$_SESSION["newurl"] = $_POST["newurl"];
// process.php
session_start();
$newurl = $_SESSION["newurl"]
echo $newurl;
- 将过帐值保存到数据库。 (跳过示例)
其他
如果iframe
包含在form1.php
中,则还可以使用AJAX来实现目标,甚至无需将发布值保存到会话或数据库中。
例如:
<!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 ;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。