已从javascript加载页面。已测试GET和POST。仅按预期进行设置;
window.location.href = "medications_edit_revised.html?recordId="+id ;
从GET[]中检索并使用数据
从提交重新加载页面,如下所示。
<form method="post" action="">
<table id="detailsDivTable">
<?php
$editClass->selectTheRecord();
?>
</table>
<fieldset name="Group1">
<legend>Group box</legend>
<input name="saveButton" type="submit" value="Save" />
<input name="deleteButton" type="submit" value="Delete" />
<input name="cancelButton" type="submit" value="Cancel" />
</fieldset>
</form>`
经过测试的GET[]和SET[]
if (isset($_GET['recordId']) ) {
$recordId = $_GET['recordId'];
require_once "medications_edit_revised.class.php";
$editClass = new editRevisedClass($DBH, $recordId);
}
if(isset($_POST['saveButton'])) {
两个测试结果都是正确的。这是正常的行为吗。我原以为表单为POSTed时,GET[]已被清除
如果是,是否有办法在发送提交之前清除GET
谢谢
发布于 2018-08-19 06:03:20
当您像这样设置URL时:
window.location.href = "medications_edit_revised.html?recordId="+id ;
您已设置URL参数。然后当你这样做的时候:
从提交重新加载页面,如下所示。
因为action
是空的,所以它将保留URL参数,因为这就是empty和(例如) $_SERVER['PHP_SELF']
所做的-它们发送给当前的URL、params和all。
您已经知道URL,因此只需根据需要进行设置:
action="medications_edit_revised.html"
发布于 2018-08-19 03:57:49
PHP将用发出请求的URL的查询字符串中的数据填充$_GET
。
如果POST请求的请求主体中的数据是使用支持的编码进行编码的,则PHP将使用该数据填充$_POST
。
无论请求是由JavaScript、表单提交还是其他原因引起的,都无关紧要。
是这种正常行为。
是
将表单提交到没有查询字符串的URL。
如果您没有action
属性,它将被提交到当前页面的URL。如果该URL有一个查询字符串,那么表单提交到的URL也是一个查询字符串(因此将填充$_GET
)。
如果希望避免这种情况,请显式指定action
。
发布于 2018-08-19 03:50:44
你能跳过你的一些代码吗?
如果您使用GET返回您的变量,它将从以下网址获取该变量: example.com?name=jesper&lastname=kaae
区别在于:
GET请求指定资源的表示形式。请注意,GET不应用于导致副作用的操作,例如使用它在web应用程序中执行操作。其中一个原因是GET可能被机器人或爬虫任意使用,这不需要考虑请求应该引起的副作用。
和
HTML将待处理的数据(例如,从
表单)提交给所标识的资源。数据包含在请求的正文中。这可能导致创建新资源或更新现有资源,或两者兼而有之。
https://stackoverflow.com/questions/51911863
复制相似问题