如何在html表单上调用php函数提交 - 在同一页面中

时间:2015-12-02 20:10:48

标签: php html forms

好的,我在Add.html中有一个html表单。当我点击提交时,我希望通过php将数据添加到我的数据库中,然后返回到“添加实例”或“失败等等”的相同表单。

我知道如何将表单操作设置为单独的php文件并调用它的唯一方法 - 然后php文件呈现并且我不会返回相同的表单。

我希望不必添加“返回表单”按钮,并希望返回到提交时带有状态消息的表单。

有更好的方法吗?

5 个答案:

答案 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将其呈现到同一页面。