【问题标题】:JS and PHP - Load php data after signal from js without sending a postbackJS 和 PHP - 从 js 发出信号后加载 php 数据而不发送回发
【发布时间】:2014-09-18 02:04:16
【问题描述】:

好吧,基本上我有一个 Flash 登录,我使用 ExternalInterface 处理了它来处理 JS。我希望 php 仅在用户登录时加载,如何做到这一点不发送新的回发(重新加载页面)

我基本上想要的是:一旦用户登录,JS 就已经出现了。我希望它一旦单击就可以执行 MySql 查询,获取数据并显示给用户,而无需重新加载页面。

我知道那是 AJAX,但我真的不知道该怎么做——我不熟悉 php,我也不知道在 JS 中调用函数时如何运行 php。

最好的问候, iMix

【问题讨论】:

标签: javascript php mysql ajax


【解决方案1】:

您可以使用 jquery,这将是一个快速实用的解决方案。

function login(){
  $.ajax({
    type: "POST",
    url: "your_login_script.php",
    data: { username: "thatuser", password: "thatpwd" }
  }).done(function( result ) {
    alert(result);
  });
}

【讨论】:

  • 谢谢!我刚刚决定为所有内容创建一个 API,使用 jQuery 来调用它。
  • your_login_script.php: if(isset($_POST)){ // $_POST['username'] --> 'thatuser' // $_POST['username'] --> 'thatpwd ' ... }
【解决方案2】:

您需要将XMLHttpRequest 创建到另一个返回数据的php 文件。然后,使用 JS,从您返回的任何格式(我推荐 JSON)解析数据,并更新 HTML。

由于您只希望在用户登录时才返回数据,因此您可能希望通过加密连接在 post 请求的正文中发送用户名/密码,然后检查 php 文件,如果它们是有效的。

【讨论】:

    【解决方案3】:

    是的,您需要使用 AJAX。

    这是最简单的程序的概要:

    1. 向服务器发送请求以在后台运行 PHP 脚本,而无需重新加载当前网页。
    2. PHP 脚本将执行所需的查询并将结果格式化为 HTML。它不应该生成一个完整的页面......只是一个包含您想要的数据的 DIV 或 TABLE 标记。
    3. 您的 Javascript 将接收 HTML 片段并将其插入当前页面。

    这是完成工作的最简单、最重要的代码。

    xmlhttp=new XMLHttpRequest();
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            document.getElementById("targetDiv").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", "somescript.php", true);
    xmlhttp.send();
    

    如果您打算将任何东西投入公共生产,您应该阅读AJAX 上的一些内容。我还强烈推荐使用 jQuery 或其他 Javascript 库之一。他们对这种东西的抽象比你自己做的任何东西都要好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      相关资源
      最近更新 更多