从javascript中加载的页面。经过GET&POST测试。仅按预期设置GET;
window.location.href = "medications_edit_revised.html?recordId="+id ;
从GET []检索和使用数据
已从SUBMIT重新加载页面,如下所示。
<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'])) {
两者均测试为TRUE。这是正常现象吗?我希望GET []在发布表单时会被清除
如果是,则可以在发送SUBMIT之前清除GET
谢谢
答案 0 :(得分:0)
您似乎在混淆POST / GET请求以及PHP $_POST
和$_GET
超全局变量。
PHP将使用发出请求的URL的查询字符串中的数据填充$_GET
。
如果在POST请求的请求正文中使用受支持的编码对PHP进行编码,则PHP将使用该数据填充$_POST
。
请求是由JavaScript,表单提交还是其他原因引起的。
是正常现象吗?
是
如果是,则可以在发送SUBMIT之前清除GET
将表单提交给没有查询字符串的URL。
提交表单的URL将由action
属性指定。
如果您没有action
属性,它将被提交到当前页面的URL。如果该URL具有查询字符串,那么提交表单的URL也会是查询字符串(因此将填充$_GET
)。
如果要避免这种情况,请明确指定action
。
答案 1 :(得分:0)
当您这样设置URL时:
window.location.href = "medications_edit_revised.html?recordId="+id ;
您已经设置了URL参数。然后,当您执行此操作时:
从SUBMIT重新加载页面,如下所示。
<form method="post" action="">
由于action
为空,因此将保留URL参数,因为这是空的,并且$_SERVER['PHP_SELF']
会这样做-它们发送到当前URL,参数和所有参数。
您已经知道该URL,因此只需根据需要进行设置:
action="medications_edit_revised.html"
答案 2 :(得分:-2)
能否请您跳过一些代码?
如果您使用GET来查询您的变量,它将通过以下网址获取它:example.com?name=jesper&lastname=kaae
区别是:
GET请求表示指定资源。请注意,不应将GET用于引起副作用的操作,例如将其用于在Web应用程序中执行操作。原因之一是,GET可能会被机器人或爬虫任意使用,而这些机器人或爬虫无需考虑请求应引起的副作用。
和
POST将要处理的数据(例如,从HTML表单)提交到标识的资源。数据包含在请求的正文中。这可能会导致创建新资源或对现有资源进行更新,或者两者都进行。