.load() 和 PHP Forms 的 jQuery 问题


jQuery issues with .load() and PHP Forms

我正在做一个项目,它有一个主页,html和2个PHP页面。我处理这个问题的方式是通过jQuery,使用命令.load()。这是它现在的样子:

    <script>
    $("#B").click(function(){
        $("#div2").load("agregarUsuario.php");
    });
    $("#eliminarUsuario").click(function(){
        $("#div2").load("eliminarUsuario.php");
    });
    </script>

因此,当我点击任何带有 id、A 或 B 的 时,它会毫无问题地加载 php。每个 PHP 都有一个提交表单,如下所示:

require_once('empleado.inc');
        echo "  <form method='post' action=''>";
        echo "    <div id='username_input'>";
        echo "  <div id='username_inputleft'></div>";
        echo "  <div id='username_inputmiddle'>";
        echo "      <input type='text' name='usuario' id='url' value='Usuario' onclick='this.value = '''>";
        echo "      <img id='url_user' src='./images/mailicon.png' alt=''>";
        echo "  </div>";
        echo "  <div id='username_inputright'></div>";
        echo " </div>";
        echo " <div id='password_input'>";
        echo "  <div id='password_inputleft'></div>";
        echo "  <div id='password_inputmiddle'>";
        echo "      <input type='password' name='password' id='url' value='Password' onclick='this.value = '''>";
        echo "      <img id='url_password' src='./images/passicon.png' alt=''>";
        echo "  </div>";
        echo "  <div id='password_inputright'></div>";
        echo " </div>";
        echo " <div id='submit'>";
        //echo "    <input type='image' src='./images/submit_hover.png' id='submit1' value='Entrar' name='Entrar'>";
        //echo "    <input type='image' src='./images/submit.png' id='submit2' value='Entrar' name='Entrar'>";
        echo "<input type='submit'  value='Entrar' class='button' name='Entrar'>";
        echo " </div>";
        echo " <div id='links_left'></div>";
        echo " <div id='links_right'></div>";
    echo " </div>"; 
    echo "  </form>";
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        $Empleado = new empleado();
        $Empleados= $Empleado->consultar();
        $Fila=$Empleados->fetch_assoc();
       if ((isset ($_POST['Entrar']))&&($Fila['Contrasena']===base64_encode($_POST['password'])&&($Fila['Nombre']===$_POST['usuario']))){
          $_SESSION['usuario']=$_POST['usuario'];
          header ("Location:  http://localhost/Ferreteria/adminIndex.php");
      }else{
              echo "<B>NO tiene permisos</B>";
       }
    }

很简单:只是收集数据并提交到数据库。这就是我们被教导的方式。现在,问题来了。每个 PHP 表单都可以单独工作正常。但是,当我在主 html 中加载它们并提交它们时,它们中的任何一个,它们只是重新加载主页而不提交操作。

我是这方面的新手,我已经测试了几次 php。正如我所指出的,在网络浏览器(Chrome)上单独工作正常,但是一旦我在主页上测试它们,就不会提交或完成该操作。我在 .load() 之后错过了什么吗?

任何协助将不胜感激。

> 没有必要在 PHP 中echo所有内容...您可以使用?>关闭PHP,然后编写纯HTML,然后使用<?php再次打开PHP

但是关于你的问题:什么都没有发生的原因是因为这个:

<form method='post' action=''>

action=''表示表单将POST回您当前所在的同一 URL。如果您的URL是www.example.com/test.php并且您使用ajax加载表单,如果action='',那么它将POST回相同的URL(<form method='post' action=''>),而不是您需要它的PHP文件。

因此,在agregarUsuario.php中,您需要:

<form method='post' action='./agregarUsuario.php'>

eliminarUsuario.php中,您需要:

<form method='post' action='./eliminarUsuario.php'>