Javascript Submit 未将 SUBMIT POST 发送到 php 文件

标签 javascript php html forms post

我正在尝试创建一个没有真正提交按钮的表单,但带有样式化的 a href 和 javascript,但我无法发布表单本身。

如果我执行var_dump($_POST);,那么我会得到一个包含 4 个项目的数组(3 个输入和 1 个文本区域)。表单本身不存在,因此 if (isset($_POST['submit'])) 的值为 false。我也尝试了 if (isset($_POST['ContactForm'])) 但它也不起作用

表单代码:

<form name='ContactForm' id='ContactForm' action='verzendvraag.php' method='POST'>
    <input type="text" class="col-md-6 col-xs-12 name" id="naam" name='naam' placeholder='Naam *' value="<? echo $_SESSION['naam']; ?>" required/>
    <input type="email" class="col-md-6 col-xs-12 Email" id="email" name='email' placeholder='Email *' value="<? echo $_SESSION['email']; ?>" required/>
    <input type="text" class="col-md-12 col-xs-12 Subject" name='Subject' id='Subject' placeholder='Onderwerp'/>
    <textarea type="text" class="col-md-12 col-xs-12 Message" id="vraag" name="vraag" placeholder='Bericht *' style="left: 0px; top: 0px" required><? echo $_SESSION['vraag']; ?></textarea>
    <div class="cBtn col-xs-12">
        <ul>                                
            <li class="clear"><a href="#" onclick="resetForm(event)"><i class="fa fa-times"></i>ledig vakjes</a></li>
            <li class="send"><a href="#" onclick="submitForm(event)"><i class="fa fa-share"></i>Verstuur bericht</a></li>
        </ul>
    </div>
</form>

javascript:

function submitForm(e) {
    if (validateForm())
    {
        document.getElementById("ContactForm").submit();
    }
    e.preventDefault();
}

php:

session_start();    
//Validatie serverside => bescherming inbouwen voor als iemand zijn javascript uitschakelt. Javascript echter wel nodig om de server en netwerktraffic te ontlasten. 
if (isset($_POST['submit']))
{ 
    $naam  = $_POST['naam'];
    //$bedrijf = $_POST['bedrijf'];
    $subject = $_POST['Subject'];
    $email = $_POST['email'];
    $vraag = $_POST['vraag'];

    //In session steken zodat we bij een eventuele terugkeer naar de form de reeds ingevulde gegevens kunnen terug zetten.
    $_SESSION['naam']  = $_POST['naam'];
    //$_SESSION['bedrijf'] = $_POST['bedrijf'];
    $_SESSION['Subject'] = $_POST['Subject'];
    $_SESSION['email'] = $_POST['email'];
    $_SESSION['vraag'] = $_POST['vraag'];

    $isOK = true;
    $error = '0';

    $atpos = strrpos($email,"@");
    $dotpos = strrpos($email,".");

    if(is_null($naam) || $naam == '')
    {
        $isOK = false;
        echo('NAAM NIET OK ');
        $error .= ',1';
    }

    if(is_null($email) || $email == '')
    {
        $isOK = false;
        echo('EMAIL NIET OK '.$email);
        $error .= ',2';
    }
    else
    {
        //checken geldig e-mailadres
        if ($atpos === false || $dotpos === false || $dotpos < $atpos+2 || $dotpos+2 >= strlen($email))  //=== moet => http://php.net/manual/en/function.strpos.php en http://www.php.net/manual/en/language.operators.comparison.php
        {
            $isOK = false;
            echo("Ongeldig e-mailadres ");
            $error .= ',3';
        }
    }

    if(is_null($vraag) || $vraag== '')
    {
        $isOK = false;
        echo('VRAAG NIET OK ');
        $error .= ',4';
    }
}

if(!($isOK))
{
    echo("<script>location.href='index.php?error=$error'</script>");
    exit;
}
else
{
.....
}

我检查了Javascript Submit is not Sending POST to php file他说他的代码可以工作,所以我不明白我的代码不行。

最佳答案

由于您没有任何名为“提交”的按钮或输入,因此它不存在于 $_POST 变量中。我认为您应该检查表格中的内容,以便使用 .

if (isset($_POST['naam'])){
// your code 
}  

而不是

if (isset($_POST['submit'])){
// your code 
}

关于Javascript Submit 未将 SUBMIT POST 发送到 php 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27687927/

相关文章:

javascript - 调整绝对定位元素的大小

javascript - 使用 JavaScript 停止页面加载

javascript - JavaScript 中的委托(delegate)原型(prototype)

javascript - JQuery 求和特定表行中的所有数据

PHP结束标记 "?>"

php - 用于查找正文中带有双斜杠的内部 URL 的 MySQL 正则表达式

javascript - 石头剪刀布javascript函数不显示结果

javascript - 自动完成搜索建议下拉弹出窗口

php - 上传 Firebird 数据库文件时出错

java - 如何在 Java 中将 HTML 解析器与 Apache Tika 一起使用以提取所有 HTML 标记?