数据未通过Phonegap应用程序插入MySql远程数据库

时间:2014-07-06 08:00:41

标签: javascript android jquery-mobile cordova

我正在尝试使用Jquery& amp设置一个Android应用程序PHP使用Ajax将表单中的数据发布到远程服务器上的数据库中。这一切在本地测试中都可以正常工作,但是当我构建应用程序并尝试通过我的平板电脑完成它时,它根本不起作用。

我认为这是一件非常简单的事情,我做错了。这是我正在使用的代码:

<!DOCTYPE html>
<html>
<head>
<title>Submit a form via AJAX</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4/jquery.mobile-1.0a4.min.css" />
<script src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0a4/jquery.mobile-1.0a4.min.js"></script>
</head>
<body>
<script>
function onSuccess(data, status)
{
data = $.trim(data);
$("#notification").text(data);
}

function onError(data, status)
{
// handle an error
}        

$(document).ready(function() {
$("#submit").click(function(){
var formData = $("#callAjaxForm").serialize();

$.ajax({
type: "POST",
url: "http://xxx.co.uk/cgi-bin/process.php",
cache: false,
data: formData,
success: onSuccess,
error: onError
});

return false;
});
});
</script>

<!-- call ajax page -->
<div data-role="page" id="callAjaxPage">
<div data-role="header">
<h1>Name Form</h1>
</div>

<div data-role="content">
<form id="callAjaxForm">
<div data-role="fieldcontain">
<label for="firstName">First Name</label>
<input type="text" name="firstName" id="firstName" value=""  />
<label for="lastName">Last Name</label>
<input type="text" name="lastName" id="lastName" value=""  />
<h3 id="notification"></h3>
<button data-theme="b" id="submit" type="submit">Submit</button>
</div>
</form>
</div>
<div data-role="footer">
</div>
</div>
</body>
</html>

您可以看到它非常基础 - 我找到了一个教程,并使用其中的代码进行测试。

php代码是:

<?php
header("Access-Control-Allow-Origin: *");
include("conn.inc");

$firstName = $_POST['firstName'];
$lastName = $_POST['lastName'];

$q1 = "insert into customers (Name,Contact) values ('$firstName','$lastName')";
$r1 = mysqli_query($cxn,$q1) or die ('Error Q1');

?>

再次非常基本,因为我是一个新手 - 但任何有关为什么提交的数据在通过android完成时发布的任何帮助都将受到大力赞赏。

非常感谢

1 个答案:

答案 0 :(得分:0)

如果您的设备已经被解雇,请检查警报。

使用此

$(document).on('pageshow', "#callAjaxPage",function () { ...... });

而不是

$(document).ready(function() { ...... });