【问题标题】:Submit button must be clicked twice to Submit form - Java Script fix not working提交按钮必须单击两次才能提交表单 - Java 脚本修复不起作用
【发布时间】:2017-04-02 23:33:31
【问题描述】:

我的表单提交按钮必须点击两次才能提交表单。我的教授给了我一些我在下面实现的 Java Script 代码,它会自动单击提交按钮两次,但它不起作用。

我的表单动作如下所示:

<form name="com" id="com" action="<?php if (($_POST['email'] != NULL) && ($_POST['comment'] != NULL) && ($_POST['fname'] != NULL) && ($_POST['lname'] != NULL)) {
echo "leavehandle.php";
$submit == "true";
} else {
echo "leave.php";
} ?>" method="post">

我的结束表单标记之外还有这个 PHP 脚本:

<?php
if ($submit == "true") {
echo"<script>document.getElementById('com').submit();</script> ";
} ?>

我的表单提交按钮仍然需要点击两次才能提交表单。任何帮助将不胜感激 - 我对 Java Script 没有太多经验!

谢谢!

编辑:

我将表单操作中的代码调整为以下内容:

<form name="com" id="com" action="<?php echo "leavehandle.php";
if ($submit == "true"){
} else {
echo "leave.php";
} ?>" method="post">

我需要在表单动作的第一部分使用 PHP 开始标签吗?另外,我不确定在我的 leavehandle.php 中放置其他代码来验证表单的位置。

离开句柄.php:

<!DOCTYPE html>
<html> <!--Opening HTML tag-->
<div align="center"> <!--Aligns content center-->
<head>
<?php //pulls in my header from another PHP page using Inlcude()
include("header.php");
?>
</head>
<style>
html {
font-family:arial;
background-color:#ffcc99;
}
</style>
<body>
<?php
include('mysqli_connect.php');

$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
$comment = $_POST['comment'];

$query = "INSERT INTO guestbook (id, email, fname, lname, date, comment)     VALUES (NULL, '$email', '$fname', '$lname', NOW(), '$comment');";

$result = mysqli_query($dbc, $query);

if ($result) {
echo "Thank you for submitting a comment $fname!";
}
else {
echo "ERROR";
}

?>
</body>
<?php //pulls in my footer from another PHP page using Inlcude()
include("footer.php");
?>
</div>
</html>

【问题讨论】:

    标签: javascript php html forms


    【解决方案1】:

    所以这里很热,这将是你的表单部分

    <form name="com" id="com" action="leavehandle.php" method="post">
    

    你的 leavehandle.php 已修复

    <!DOCTYPE html>
    <html> <!--Opening HTML tag-->
    <div align="center"> <!--Aligns content center-->
    <head>
    <?php //pulls in my header from another PHP page using Inlcude()
    include("header.php");
    ?>
    </head>
    <style>
    html {
    font-family:arial;
    background-color:#ffcc99;
    }
    </style>
    <body>
    <?php
    include('mysqli_connect.php');
    
    //set vars to null 
    $fname = $lname = $email = $comment = "";
    
    //validade post 
    
    
    
    if(!empty($_POST['fname'])&&!empty($_POST['lname'])&&!empty($_POST['email'])&&!empty($_POST['comment'])) {
       
    
    $fname = $_POST['fname'];
    $lname = $_POST['lname'];
    $email = $_POST['email'];
    $comment = $_POST['comment'];
    
    $query = "INSERT INTO guestbook (id, email, fname, lname, date, comment)     VALUES (NULL, '$email', '$fname', '$lname', NOW(), '$comment');";
     
    $result = mysqli_query($dbc, $query);
     
    } else {
    	
    	//redirect to error page is is null 
    	header("Location: leave.php");
    }
    
    if ($result) {
    echo "Thank you for submitting a comment $fname!";
    }
    else {
    echo "ERROR";
    }
    
    ?>
    </body>
    <?php //pulls in my footer from another PHP page using Inlcude()
    include("footer.php");
    ?>
    </div>
    </html>

    【讨论】:

    • 嗨,Otávio,我用另一个问题编辑了我的原始帖子。我也不确定将 php 代码放在我的 leavehandle.php 中的哪个位置: if(!empty($_POST['email'])
    • 我添加了我的 leavehandle.php 代码。我还必须确保表单经过验证并且所有字段都是必需的。这就是我在原始表单操作中使用它的原因: if (($_POST['email'] != NULL) && ($_POST['comment'] != NULL) && ($_POST['fname'] != NULL) && ($_POST['lname'] != NULL))
    • 稍等,我会修复它,可以在 leavehandler.php 中验证,我会修复它并发送给您
    • 我修改了你的代码,现在测试看看效果如何
    猜你喜欢
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多