使用jQuery在DIV中显示PHP文件

时间:2014-06-29 11:47:19

标签: javascript php jquery

我有3个文件

  • register.php

  • reg.js

  • reg.php

当我点击register.php中的提交按钮时(看起来像这样)

    <div id="phpcontenthere"></div>

    <form action="reg.php" method="post" id="myForm">

    <input type='submit' id='submit' value='Sth'>

    </form>

    <script type="text/javascript" src="reg.js"></script>

它显示了reg.php的错误消息,但是在另一个窗口中。 我希望这些错误消息显示在register.php。

reg.js看起来像这样:

$("#submit").click( function() {

    $.post( $("#myForm").attr("action"),
        $("#myForm :input").serializeArray(),
        function(info) {

            $("#phpcontenthere").empty();
            $("#phpcontenthere").html(info);

        });
    $("myForm").submit( function () {
        return false;
    });
});

也许我想创造的这个解决方案并不好,或者它很好但我错过了一些我不知道的东西,但如果有人能帮助我,我会很高兴,

提前致谢!

蒂博尔

3 个答案:

答案 0 :(得分:0)

我会教你逻辑,带有示例代码,因为我不想给你喂食。

首先,创建一个名为&#39; errors&#39;:

的数组
$errors = array();

然后在检查时,只需给阵列充气。

if(something) {
  $errors[] = "Error description";
}

然后,一旦你的所有错误都膨胀,你检查长度,如果它大于0错误,那么返回数组。

if(count($errors) > 0) {
  return $errors;
}

然后,您可以使用for循环显示数组。

$c = count($errors);
for($i=0; $i < $c; $i++) {
    echo $errors[$i];
}

答案 1 :(得分:0)

你有一些问题。

首先,$("myform")应该是$("#myform") - 您忘记了#,因此它与ID不匹配。

其次,您不应在submit处理程序中为click定义处理程序;事件处理程序几乎总是应该在顶层定义。

您应该将return false放在click处理程序中。或者更好的是,将所有代码放在表单的提交处理程序中(单击提交按钮提交表单)。

$("#myForm").submit( function() {

    $.post( $("#myForm").attr("action"),
        $("#myForm :input").serializeArray(),
        function(info) {
            $("#phpcontenthere").html(info);
        });
    });
    return false;
});

在调用.empty()之前也没有必要调用.html(),因为后者完全取代了那里的内容。

答案 2 :(得分:0)

从我看到的,你仍然在提交表单(在单击侦听器中尝试提交时返回false的代码段)。也许这就是为什么它忽略了返回false,并确实提交了表单(而不是用ajax发布)

所以你应该试试这样的javascript代码:

$("#submit").click( function() {
    $.post( $("#myForm").attr("action"),
        $("#myForm :input").serializeArray(),
        function(info) {
            $("#phpcontenthere").empty();
            $("#phpcontenthere").html(info);
        }
    );
});

$("#myForm").submit( function () {
    return false;
});