[英]Combining Ajax, Jquery, mysql, php in Phonegap project doesn't work
我尝试使用以下代码将数据发送到我的数据库,但是它不起作用。 在此示例之后编写代码( http://samcroft.co.uk/2012/posting-data-from-a-phonegap-app-to-a-server-using-jquery/ )
如果有人有什么问题,我将不胜感激。
HTML表格
<form>
<fieldset data-role="controlgroup">
<legend>Pick your team:</legend>
<input type="radio" name="team_name" id="red" value="on" checked="checked">
<label for="red">Team Red</label>
<input type="radio" name="team_name" id="blue" value="off">
<label for="blue">Team Blue</label>
</fieldset>
<fieldset data-role="controlgroup" data-type="horizontal">
<legend>Choose your number:</legend>
<input type="radio" name="player_number" id="1" value="on" checked="checked">
<label for="1">1</label>
<input type="radio" name="player_number" id="2" value="off">
<label for="2">2</label>
<input type="radio" name="player_number" id="3" value="off">
<label for="3">3</label>
<input type="radio" name="player_number" id="4" value="off">
<label for="4">4</label>
<input type="radio" name="player_number" id="5" value="off">
<label for="5">5</label>
<input type="radio" name="player_number" id="6" value="off">
<label for="6">6</label>
<input type="radio" name="player_number" id="7" value="off">
<label for="7">7</label>
<input type="radio" name="player_number" id="8" value="off">
<label for="8">8</label>
<input type="radio" name="player_number" id="9" value="off">
<label for="9">9</label>
<input type="radio" name="player_number" id="10" value="off">
<label for="10">10</label>
</fieldset>
<label for="player_name">Your name:</label>
<input type="text" name="player_name" id="player_name" value="">
<input type="submit" value="Submit">
</form>
jQuery / Ajax代码
$('form').submit(function(){
var postData = $(this).serialize();
$.ajax({
type: 'POST',
data: postData,
url: 'http://www.kauwenberg.com/Commander/core/handleplayer_2.php', // 2 !!
succes: function(data){
console.log(data);
alert(data);
},
error: function(){
console.log(data);
alert(data);
}
});
return false;
});
http://www.kauwenberg.com/Commander/core/handleplayer_2.php上的 PHP代码
<?php
$server = "localhost";
$username = "MA_SECRET";
$password = "MA_SECRET";
$database = "MA_SECRET";
$con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error());
mysql_select_db($database, $con);
$team_name = mysql_real_escape_string($_POST["team_name"]);
$player_number = mysql_real_escape_string($_POST["player_number"]);
$player_name = mysql_real_escape_string($_POST["player_name"]);
$sql = "INSERT INTO players (team_name, player_number, player_name) ";
$sql .= "VALUES ($team_name, $player_number, $player_name)";
if (!mysql_query($sql, $con)) {
die('Error: ' . mysql_error());
} else {
echo "Comment added";
}
mysql_close($con);
?>
$(document).on('submit','form',function(e){
e.preventDefault();
var postData = $(this).serialize();
$.post('http://www.kauwenberg.com/Commander/core/handleplayer_2.php',postData,
function(data){
alert(data);
});
return false;
});
尝试这个
您可以检查此页面上的最后一个问题
http://phonegap.com/about/faq/
我建议改用JSON。
检查此链接http://catchmayuri.blogspot.com/2012/01/working-with-json-phonegap-application.html
注意:不要在SQL代码中引用$ team_name,$ player_number和$ player_name,这可能非常危险 。 如果查询中的值未正确引用,则使用mysql_real_escape_string的事实并不重要; 它们仍将被解析为普通SQL。
$sql .= "VALUES ('$team_name', '$player_number', '$player_name')";
它可能不是当前无法正常工作的原因,但是当您开始从事其他工作时,它肯定会回复您的。
另外,检查您的AJAX请求是否到达服务器。 如果您的请求跨越多个域,则可能会被电话的安全策略阻止。
嗨,将您的提交按钮更改为<input type="button" value="Submit" id="submit_button" />
,然后将jQuery事件更改为以下内容:
$('#submit_button').bind('click',function(e){
e.preventDefault();
var postData = $(this).serialize();
$.ajax({
type: 'POST',
data: postData,
url: 'http://www.kauwenberg.com/Commander/core/handleplayer_2.php', // 2 !!
success: function(data){
console.log(data);
alert(data);
},
error: function(){
console.log(data);
alert(data);
}
});
return false;
});
它将警报从服务器返回的响应将显示在警报对话框中。
您也有一个拼写错误:
成功 :函数(数据){
“成功”就是这个词。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.