【问题标题】:return true in php and obtain result in javascript在 php 中返回 true 并在 javascript 中获取结果
【发布时间】:2016-04-26 11:37:42
【问题描述】:

我有一个 javascript 函数,我想重定向到我服务器上的 php 获取结果,然后如果该 php 文件返回 true 以完成该函数。我试过这个:

if (window.location.href = "http://cosy.azurewebsites.net/servertest.php?u=" + Username + "&p=" + Password ==true)
    {
       alert ("it was true");

    }

但无论我做什么,它都会返回 false。

当我进入 php 页面时,我会返回 null 并返回到 javascript:

header("location:javascript://history.go(-1)?result=true/false");
            return true;

            //header('Location:some_page.php?result=true/false');
            exit;

我知道这不是正确的做法,但我尝试了一些不同的方法,这就是我所能得到的!!

【问题讨论】:

  • 我想你需要的是jQuery ajax call
  • 我不明白你需要什么,你能编辑问题来澄清一下。也许@AuditeMarlow 可以做到。
  • cosy.azurewebsites.net/servertest.php?u= 进行 ajax 调用" + 用户名 + "&p=" + 密码并从服务器发送 true 或 false 响应
  • 你在做作业而不是比较
  • window.location.href == "http://cosy.azurewebsites.net/servertest.php?u=" + Username + "&p=" + Password )

标签: javascript php html ionic-framework


【解决方案1】:

所以据我所知,您想使用 Javascript 向您的服务器发出请求,然后希望 PHP 对该请求做出反应并返回 true,然后您的 JS 文件应该对响应做出反应。

您需要使用的是 AJAX(异步 Javascript 和 XML)请求。最简单的方法是使用 JQuery,这也意味着它们可以为您处理跨浏览器的可比性。

你可以在这里找到官方文档:http://api.jquery.com/jquery.ajax/

我将提供一个简单的示例,但我认为您将通过自己进行试验来了解更多信息。

JS 文件:

$.ajax({
    async: true,
    url: 'end-point.com/servertest.php?u=' + Username,
    dataType: 'json',    
    success: function (response) {
        if (response.result === true) {
            // Run your function.
        }
    }    
});

PHP 文件:

<?php

// Do whatever check you are doing, for the example i'll just return true.
echo json_encode([result => true]);

我建议研究 AJAX,它是一个非常方便的工具。

【讨论】:

  • 这正是我想要的,谢谢,我会调查的。当我在我的 javascript 中调用它时,它给了我 Uncaught ReferenceError: $ is not defined 我需要为 ajax 做一个导入吗?
  • 啊,是的,JQuery 是一个外部库,您可以自己下载并存储它,或者您可以使用 google 的托管库通过以下 &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"&gt;&lt;/script&gt; 包含该库,这样您就知道了来自这里:developers.google.com/speed/libraries/#jquery :)
  • 现在只需要弄清楚 HTTP 访问控制 (CORS) 部分就行了,但是干杯
【解决方案2】:

首先,我认为您需要的是 jQuery ajax call,尽管您当前的描述实际上并不清楚您真正想要实现的目标。

其次,您正在尝试从一个页面检索return 值,该页面实际上只重定向到另一个页面。

您可以做的是对您的 PHP 脚本运行 ajax 调用,并根据从脚本返回给 JS 的返回值做一些事情。例如:

在你的 servertest.php 中:

<?php
    ...

    die(json_encode(true));
?>

在你的 JS 脚本中:

$.ajax({
    url: 'path/to/servertest.php',
    type: 'GET',
    data: {
        u: Username,
        p: Password
    },
    success: function (data) {
        data = $.parseJSON(data);

        if (data === true) {
            alert('it was true');
        }
    }
});

【讨论】:

  • 这正是我想要的,谢谢,我会调查的。当我在我的 javascript 中调用它时,它给了我 Uncaught ReferenceError: $ is not defined 我需要为 ajax 做一个导入吗?
  • 您需要包含 jQuery 库才能使用任何 jQuery。在您的网站&lt;script src="//code.jquery.com/jquery-1.12.0.min.js"&gt;&lt;/script&gt; 中包含以下内容并查看jQuery docs
猜你喜欢
  • 1970-01-01
  • 2010-11-17
  • 1970-01-01
  • 2019-08-10
  • 1970-01-01
  • 2017-11-27
  • 1970-01-01
  • 2020-09-25
  • 2016-08-31
相关资源
最近更新 更多