繁体   English   中英

在Phonegap项目中组合Ajax,Jquery,mysql,php无效

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM