JS和PHP - 从js发出信号后加载php数据而不发送回发

时间:2014-09-17 17:39:23

标签: javascript php mysql ajax

好吧基本上我有一个flash登录,我使用ExternalInterface处理JS。我想只在用户登录时加载php,如何才能执行此操作而不发送新的回发(重新加载页面)

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

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

祝你好运, 的iMix

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

是的,你需要使用AJAX。

以下是最简单程序的概述:

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

    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库。对于这种事情,他们有比你自己做饭更好的抽象。