javascript - .load() 和 PHP Forms 的 jQuery 问题

标签 javascript php jquery html 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() 之后遗漏了什么吗?

如有任何帮助,我们将不胜感激。

最佳答案

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

但是关于你的问题:没有任何反应的原因是因为:

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

action=''意味着表格将 POST返回到您当前所在的相同 URL。如果您的网址是 www.example.com/test.php如果action='',你用ajax加载一个表单然后它将POST回到相同的 URL ( <form method='post' action=''>) 而不是您需要它的 PHP 文件。

所以在agregarUsuario.php你需要:

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

并且在 eliminarUsuario.php你需要:

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

关于javascript - .load() 和 PHP Forms 的 jQuery 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30960864/

相关文章:

javascript - 如何将多个参数发送到 WebGL 上的顶点着色器?

javascript - 语义 ui 搜索不起作用

javascript - 如何根据度数和坐标绘制椭圆

javascript - 如果通过 ajax 调用 PHP 页面需要一段时间才能运行/返回(并且它设置 session 变量),第二个 ajax 调用会看到这些 session 更改吗?

php - 拒绝访问目录中的所有文件,除非特定的 php 页面是引荐来源网址

jquery - 如何初始化可在 MVC3 应用程序中动态加载的 jquery ui 小部件

javascript - 如何使用 pdf make 渲染一组复杂对象?

javascript - 如何在表单中发布 Quill 编辑器的内容?

asp.net - 有关从 ASP.NET MVC 应用程序播放声音文件的建议

jquery if 变量在值列表中