提交不应该重定向到HTML表单中的另一个页面

时间:2014-07-16 07:27:27

标签: php html forms

我有一个HTML表单,它读取一些数据并在PHP的帮助下保存在文本文件中。表单的HTML代码如下所示。

现在发生了什么:
1.点击submit按钮后,它会重定向到' myprocessing.php'
2.成功保存data.txt

我需要的帮助
1.当我点击submit它不应该将我重定向到php页面时,它应该保留在HTML表单页面上 2.它应该在同一个HTML页面上显示php文件的输出 简单来说,我想留在HTML页面本身。由于我对HTML和PHP很陌生,所以要努力做到这一点。在此先感谢:-)

<html>
<head>
<title></title>
</head>
<body>
     <form action="myprocessing.php" method="POST">
     <input name="field1" type="text" />
     <input name="field2" type="text" />
     <input type="submit" name="submit" value="Save Data">
     </form>
<a href='data.txt'>Show data</a>
</body>
</html>

这是我的数据处理PHP文件。

<?php
echo "starting...";
if(isset($_POST['myTextBox']) && isset($_POST['field2'])) {
    $data = $_POST['field1'] . '-' . $_POST['field2'] . "\n";
    $ret = file_put_contents('data.txt', $data, FILE_APPEND | LOCK_EX);
if($ret === false) {
    die('There was an error writing this file');
}
else {
    echo "$ret bytes written to file";
}
echo "Ended...";
}
else {
die('no post data to process');
}
?>

3 个答案:

答案 0 :(得分:3)

请尝试以下操作。点击按钮调用refresh_div(): -

<div class="result"></div>

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
    function refresh_div() {
        jQuery.ajax({
            url:'YOUR PHP page url',
            type:'POST',
            success:function(results) {
                jQuery(".result").html(results);
            }
        });
    }

</script>

答案 1 :(得分:2)

在相同的html文件中编写php代码,并使用 isset() 函数检查$_POST数据

试试这个

<?php
if(isset($_POST['field1']) && isset($_POST['field2']))
{
echo "starting...";
if(isset($_POST['myTextBox']) && isset($_POST['field2'])) {
    $data = $_POST['field1'] . '-' . $_POST['field2'] . "\n";
    $ret = file_put_contents('data.txt', $data, FILE_APPEND | LOCK_EX);
if($ret === false) {
    die('There was an error writing this file');
}
else {
    echo "$ret bytes written to file";
}
echo "Ended...";
}
else {
die('no post data to process');
}
}
?>

<html>
<head>
<title></title>
</head>
<body>
     <form action="current_page.php" method="POST">
     <input name="field1" type="text" />
     <input name="field2" type="text" />
     <input type="submit" name="submit" value="Save Data">
     </form>
<a href='data.txt'>Show data</a>
</body>
</html>

答案 2 :(得分:1)

<html>
<head>
<title></title>
</head>
<body>
     <form action="" method="POST" name="testForm" id="testForm">
         <input name="field1" type="text" />
         <input name="field2" type="text" />
         <input type="submit" name="submit" value="Save Data">
     </form>
<a href='data.txt'>Show data</a>
<div class="result"></div>
</body>
</html>

添加表单标记的名称和ID。如果您将操作保持为空白,则会将您的表单提交到当前页面本身。 您需要ajax调用才能按照您的要求执行。

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
    $( "#testForm" ).on( "submit", function( event )
    {
        $.ajax({
            url:'myprocessing.php',
            type:'POST',
            data: $("#testForm").serialize()
            success:function(results) {
                jQuery(".result").html(results);
            }
        });
        return false;
    });

</script>

不要忘记在最后放回假。如果我们不将return返回false,它将在ajax调用后提交您的表单。