Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于php和ajax jquery的问题_Php_Javascript_Jquery_Ajax_Load - Fatal编程技术网

关于php和ajax jquery的问题

关于php和ajax jquery的问题,php,javascript,jquery,ajax,load,Php,Javascript,Jquery,Ajax,Load,我在表格上有个问题。我有一个简单的表单和php中的验证。一切正常。现在,我以ajax load()方法传递该文件,并出现了问题 当我按submit时,页面不显示任何消息,只需重定向到网站的初始页面 我进行了测试,消息以单独的模式显示,没有ajax。只是使用form.php 在index.php中 $("#replace").load("form.php"); 在form.php中 <?php require_once("validation.php"); ?> <di

我在表格上有个问题。我有一个简单的表单和php中的验证。一切正常。现在,我以ajax load()方法传递该文件,并出现了问题

当我按submit时,页面不显示任何消息,只需重定向到网站的初始页面

我进行了测试,消息以单独的模式显示,没有ajax。只是使用form.php

在index.php中

$("#replace").load("form.php");
在form.php中

<?php
require_once("validation.php");
?>


  <div id="container">
        <form method="post" id="customForm" action="">
            <div>
                <label for="name">Name</label> <input id="name" name="name"
                    type="text" /> <span id="nameInfo">Insira o seu nome</span>
            </div>
            <div>
                <label for="email">E-mail</label> <input id="email" name="email"
                    type="text" /> <span id="emailInfo">Insira um email válido por
                    favor!</span>
            </div>
            <div>
                <label for="myPassword">Password</label> <input id="myPassword"
                    name="myPassword" type="password" /> <span id="myPasswordInfo">Insira
                    pelo menos 4 letras e sem espaços</span>
                <div id="bar"></div>
            </div>
            <div>
                <label for="pass2">Confirm Password</label> <input id="pass2"
                    name="pass2" type="password" /> <span id="pass2Info">Confirme a
                    password</span>
            </div>
            <div></div>
            <div>
                <input id="send" name="send" type="submit" value="Send" />
            </div>
        </form>

        <?if( isset($_POST['send']) && (!validateName($_POST['name']) || !validateEmail($_POST['email'])
        || !validatePasswords($_POST['myPassword'], $_POST['pass2']))):?>
        <div id="error">
            <ul>
            <?if(!validateName($_POST['name'])):?>
                <li><strong>Invalid Name:</strong> Nome muito pequeno</li>
                <?endif?>
                <?if(!validateEmail($_POST['email'])):?>
                <li><strong>Invalid E-mail:</strong> Escreva um email válido por favor</li>
                    <?endif?>
                    <?if(!validatePasswords($_POST['myPassword'], $_POST['pass2'])):?>
                <li><strong>Passwords inválidas:</strong> Passwords não coicindem ou são inválidas!</li>
                    <?endif?>
            </ul>
        </div>
        <?elseif(isset($_POST['send'])):?>

        <div id="error" class="valid">
            <ul>
            <?if(!inserirDados($_POST['name'],$_POST['email'], $_POST['myPassword'], $_POST['pass2'] )):?><?endif?>
            </ul>
        </div>
        <?endif?>
    </div>

名称Insira o seu nome
电子邮件Insira um email válido por
赞成
密码Insira
pelo menos 4 letras e sem espaços
确认密码
密码
  • 无效名称:Nome muito pequeno
  • 无效电子邮件:Escreva um email válido por favor
  • 投资银行密码:投资银行密码

我怎样才能解决这个问题

我猜您的提交处理程序有问题。两点:

  • 如果每次都使用load()重新加载表单,则需要在完成加载后重新附加submit()处理程序(使用重新附加处理程序)

  • 您必须
    返回false
    或在提交处理程序中调用
    e.PreventDefault()
    ,以防止提交按钮的默认行为(也就是提交表单)

  • 另外,请注意:它重新加载当前页面的原因是因为action=“”(这意味着发布到当前url)。。并且是一个强有力的指示器,表明您的提交处理程序不会阻止表单的正常提交


    编辑:将“提交”处理程序附加到表单以执行自定义ajax内容,而不是默认行为。请参阅和。

    如何附加提交处理程序?对不起,您对提交处理程序的意思是什么?您能解释一下我如何重新附加吗?我删除了action=“”,同样的情况也发生了,谢谢。我建议您仔细阅读一下jQuery及其工作原理,似乎您缺少了一些有价值的知识。我认为问题还不清楚。我有一个索引页,当按下一个按钮时,它会像register一样加载表单。现在在新的div中,当我按下send时,页面将全部重新加载到初始状态,div将消失。我有jquery的基本原理,这不是我在帖子中所说的问题,当加载表单时,您需要附加一个提交偶数处理程序(或者在发送按钮上附加一个单击事件处理程序)并执行ajax操作,您必须防止默认行为,否则表单将提交自身(并重新加载页面,因为这是默认操作)是的,我明白你的建议。这是传统的方式。我将修改我的代码。谢谢