好的,我在Add.html中有一个html表单。当我点击提交时,我希望通过php将数据添加到我的数据库中,然后返回到“添加实例”或“失败等等”的相同表单。
我知道如何将表单操作设置为单独的php文件并调用它的唯一方法 - 然后php文件呈现并且我不会返回相同的表单。
我希望不必添加“返回表单”按钮,并希望返回到提交时带有状态消息的表单。
有更好的方法吗?
答案 0 :(得分:1)
你可以在php中进行重定向到html表单 - 你可以设置一个“flash消息” - 通过将“实例添加”保存到会话并在重定向到html时显示该值来显示“实例已添加”
答案 1 :(得分:1)
一个非常简单的方法是执行以下操作:
<强> yourpage.php 强>
<?php
if(isset($_POST)){
//data posted , save it to the database
//display message etc
}
?>
<form method="post" action="yourpage.php" >....
答案 2 :(得分:0)
你可以使用这个技巧
<?php if (!isset $_POST['Nameofyourinput']){
?>
<form method="post" action="add.html">
// your inputs here along with the rest of html
</form>
<?php
}
else
{
// Update you database and do your things here
//in your request variable you can add the error you want if things didn't go well, for example
$result = mysqli_query($connection, $sql) or die('Instance not added !'.$req.'<br>'.mysql_error());
// and then
echo (" instance added")
};
答案 3 :(得分:0)
action属性将默认为当前URL。这是最可靠和最简单的方式来表示&#34;将表单提交到它所来自的同一个地方&#34;。
不要对action属性赋予任何内容。它将引用您当前的页面。
<form method="post" action="">
其他方法是:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
或者只是添加#&#39;
<from method="post" action="#">
处理php代码。在里面写下你的代码。
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// write your code here.
}
您应该将文件扩展名从.html更改为.php。
答案 4 :(得分:0)
那么你可以聘请老派的AJAX。例如,假设我们有一个接收数字N的表单,一旦我们单击计算按钮,我们应该看到在同一页面上显示的2 ^ N的结果,而不会刷新页面并且之前的内容保留在一样的地方。这是代码
<html>
<head>
<title> Simple Math Example</title>
<script type="text/javascript">
var request = new XMLHttpRequest();
function createAjaxObject(){
request.onreadystatechange = applyChange;
request.open("POST","calculate.php",true);
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.send("N="+document.getElementById('N').value);
}
function applyChange(){
if(request.status == 200 && request.readyState == 4){
document.getElementById('resultSpace').innerHTML = request.responseText;
}
}
</script>
</head>
<body>
<fieldset>
<legend>Enter N to get the value of 2<sup>N</sup> ::: </legend>
<input type="text" name = "N" id = "N">
<br>
<input type="button" value = "Calculate" onclick="createAjaxObject()">
</fieldset>
<div id="resultSpace">
</div>
</body>
文件calculate.php是与上述代码相同的文件。单击计算按钮时,它会调用一个函数createAjaxObject,它接受一个值N并通过POST方法将值发送到同一个文件。计算完成后,将发送响应。如果响应成功,它将被发送到一个名为applyChange的函数,该函数将通过JavaScript将其呈现到同一页面。