【问题标题】:PHP not executing using phoneGap in Xcode simulator - using AJAX, jQueryPHP 未在 Xcode 模拟器中使用 phoneGap 执行 - 使用 AJAX、jQuery
【发布时间】:2014-02-14 19:12:14
【问题描述】:

我正在 HTML5/Javascript/CSS3 实现中创建应用程序。 我的本地主机上有一个外部 PHP 文件,我正在尝试使用 jQuery 和 AJAX 与之通信。如果我在浏览器中加载文件,一切正常,并且我从 PHP 文件中获得所需的响应。但是,在 Xcode 的模拟器中运行它时,我只收到整个 PHP 脚本作为响应。我不知道为什么它没有执行。

HTML 表单:

<form id="loginForm" method = "post" action="PHP/login.php">
<input type="text" name="username" id="username" placeholder="Username" style="width: 200px;"><br>
<input type="password" name ="password" id="password" placeholder="Password" style="width: 200px;"><br>
<button type="submit" id="login" style="float: right;">Login</button>
</form>

jQuery:

$(document).ready(function (){
 $("button#login").click(function (){
      u = $("#username").val();
      p = $("#password").val();
      if($("#username").val()==""||$("#password").val()=="")
          alert("Please enter username and password");
          else
          $.post( $("#loginForm").attr("action"),
          function(data){
                alert(data);
                });
          $("#loginForm").submit( function(){
                return false;
                });
          });
});

PHP连接MYSQL数据库:

//connection to the database
$dbhandle = mysql_connect("localhost", "root", "************")
or die("Unable to connect to MySQL");

//select a database to work with
$selected = mysql_select_db("VLA",$dbhandle)
or die("Could not select examples");

$username = mysql_real_escape_string($_POST["username"]);
$pass = mysql_real_escape_string($_POST["password"]);

$query = "SELECT count(*) FROM users WHERE (username='$username' AND password = '$pass')";

$result = mysql_query($query);
$row = mysql_fetch_array($result);

if ($row[0] > 0){
    echo "true";
}else{
    echo "false";
    }

将不胜感激任何形式的帮助!

【问题讨论】:

  • 听起来你在 iOS 项目中包含了 .php 文件。那是行不通的,它应该托管在服务器上。如果您意识到这一点并尝试让模拟器与 Mac 上托管的 .php 文件进行通信,您可能应该在 php url 前面加上 127.0.0.1
  • 谢谢。我曾尝试在服务器上引用 php 文件以及将项目文件夹本身也放在服务器上,但一直遇到同样的问题。该代码在浏览器上完美运行,但在模拟器上我只是将 php 脚本返回给我。你说的前缀是什么意思?你的意思是 127.0.0.1/PHP/login.php?

标签: php jquery ajax xcode cordova


【解决方案1】:

修改你的php文件,将结果数据转换成json数据。

 $(document).ready(function (){
    $("button#login").click(function (){
      u = $("#username").val();
      p = $("#password").val();
      if($("#username").val()==""||$("#password").val()==""){
            alert("Please enter username and password");
      }else{   
            var ajax_call = your_servicepath+'PHP/login.php';                 
            var form = $('#loginForm').serialize();                    
            $.ajax({
                type: "POST",
                url: ajax_call,
                data: form,
                dataType: "json",
                success:  function(response){
                    alert(JSON.stringify(response));
                }
            });
      }
   });
});

【讨论】:

    猜你喜欢
    • 2014-07-04
    • 2012-02-10
    • 1970-01-01
    • 2016-01-18
    • 2017-02-14
    • 2012-02-20
    • 2012-08-05
    • 2015-10-10
    • 2012-12-02
    相关资源
    最近更新 更多