我有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;
});
});
也许我想创造的这个解决方案并不好,或者它很好但我错过了一些我不知道的东西,但如果有人能帮助我,我会很高兴,
提前致谢!
蒂博尔
答案 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;
});