Php 表单提交后Ajax未正确填充目标DIV

Php 表单提交后Ajax未正确填充目标DIV,php,ajax,Php,Ajax,我正在尝试为我拥有的网站实现一个表单插件。它应该很简单,但它拒绝像我想要的那样表现 这是一个简单的php电子邮件表单,一旦正确提交,就会被同一个div中的成功或失败消息所取代。现在,我的JS只是将消息添加到表单顶部 我很震惊,因为我认为我解决了一些严重的麻烦,因为我的经验做这件事,但我不能通过这个简单的错误。我想要的只是包含表单的DIV中的响应消息 以下是包含PHP的方法: if (isset($_REQUEST['sender']) && isset($_REQUEST['me

我正在尝试为我拥有的网站实现一个表单插件。它应该很简单,但它拒绝像我想要的那样表现

这是一个简单的php电子邮件表单,一旦正确提交,就会被同一个div中的成功或失败消息所取代。现在,我的JS只是将消息添加到表单顶部

我很震惊,因为我认为我解决了一些严重的麻烦,因为我的经验做这件事,但我不能通过这个简单的错误。我想要的只是包含表单的DIV中的响应消息

以下是包含PHP的方法:

if (isset($_REQUEST['sender']) && isset($_REQUEST['message'])) {//if "sender" and "message" is filled out, proceed

    //check if the email address is invalid
    $mailcheck = spamcheck($_REQUEST['sender']);
    if ($mailcheck==FALSE) {
        echo "An error has occurred" . $_REQUEST['sender'] . " " . $_REQUEST['message'];
    }
    else {//send email
        $email = $_REQUEST['sender'] ;
        $subject = "This is the subject" ;
        $message = $_REQUEST['message'] ;
        mail("myself@gmail.com", $subject, $message, "From: $email" );
        echo "Your message was sent";
    }

}

function createForm($formID, $formName) {
    echo "<div id=\"" . $formID . "\" class=\"ajaxForm\" >" . PHP_EOL;
    echo "<form name =\"" . $formName . "\" method=\"post\" onsubmit=\"ajaxUpdate(\"" . $formID . "\",\"sandbox.php\"," . sender . "," . message . ");>" . PHP_EOL;
    echo "<input name=\"sender\" type=\"text\" placeholder=\"email\" required><br>" . PHP_EOL;
    echo "<br>" . PHP_EOL;
    echo "<textarea rows=\"6\" cols=\"40\" name=\"message\" placeholder=\"message\" required></textarea><br>" . PHP_EOL;
    echo "<input type=\"submit\" value=\"Send\" >" . PHP_EOL;
    echo "</form>" . PHP_EOL;
    echo "</div>" . PHP_EOL;
}


function spamcheck($field) {
    //filter_var() sanitizes the e-mail
    //address using FILTER_SANITIZE_EMAIL
    $field=filter_var($field, FILTER_SANITIZE_EMAIL);

    //filter_var() validates the e-mail
    //address using FILTER_VALIDATE_EMAIL
    if(filter_var($field, FILTER_VALIDATE_EMAIL)) {
        return TRUE;
    }
    else {
        return FALSE;
    }
}
function ajaxUpdate(targetDIV, responsePHP, param1, param2) {

    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById(targetDIV).innerHTML = xmlhttp.responseText;
        }
    }
    var strContent = responsePHP + "?sender=" + param1 + "&message=" + param2;
    xmlhttp.open("POST", strContent, true);
    xmlhttp.send();
}
我通过包含js和php并使用createForm()函数生成表单来使用它


请提供帮助。

此行不正确:

echo "<form name =\"" . $formName . "\" method=\"post\" onsubmit=\"ajaxUpdate(\"" . $formID . "\",\"sandbox.php\"," . sender . "," . message . ");>" . PHP_EOL;

基本上,这是一个错过厕所的案例。顺便说一句,我知道这个js函数是一个很大的安全故障,它只是保持这样简单。你的问题有点困惑。什么是
div
你是什么意思?为什么你不能得到它?包含php响应(由js请求)的div是id=$formID的div。通过创建和传递它,我可以有多个表单实例。老实说,我无法得到它。您的代码缺少应该显示结果的部分。也许这就是为什么没有人来回答你。我想最好解释一下这句话
我想要的只是包含表单的DIV中的响应消息。
特别是。谢谢你的提示,但我想问题在于没有任何东西阻止默认表单提交。由于我没有使用jQuery(而且不想使用),我自己如何实现它呢?谢谢!!就这样!网络上充斥着jQuery解决方案,谢谢;)
echo "<form name =\"" . $formName . "\" method=\"post\" onsubmit=\"ajaxUpdate('" . $formID . "','sandbox.php','" . sender . "','" . message . "');\">" . PHP_EOL;
echo "<form name =\"" . $formName . "\" method=\"post\" onsubmit=\"ajaxUpdate('" . $formID . "','sandbox.php','" . sender . "','" . message . "');return false;\">" . PHP_EOL;