【问题标题】:jQuery issues with .load() and PHP Forms.load() 和 PHP 表单的 jQuery 问题
【发布时间】:2015-06-21 11:07:23
【问题描述】:

我正在开发一个具有主页、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() 之后我是否遗漏了什么?

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript php jquery html forms


    【解决方案1】:

    没有必要echo PHP 中的所有东西...你可以用?&gt; 关闭php,然后编写纯HTML,然后用&lt;?php 再次打开PHP

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

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

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

    所以在agregarUsuario.php 你需要:

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

    你需要在eliminarUsuario.php

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

    【讨论】:

    • 这部分工作@degenerate。一旦我将操作设置为那些 PHP,浏览器就会将我定向到那里。我正在使用来自 jquery 的 .load 而不是 Frames,我需要让表单在不离开主页的情况下工作。感谢您的快速回答。
    • 如果您不想将POST 直接发送到 PHP 页面,那么您需要在您的主页上包含带有if ($_POST) include('agregarUsuario.php'); 的 PHP 文件——但您只是在绕圈子。首先没有理由将文件包含在 jquery 中......
    猜你喜欢
    • 2023-04-01
    • 2011-03-14
    • 1970-01-01
    • 2013-01-25
    • 2012-07-28
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    • 2011-09-16
    相关资源
    最近更新 更多