2013-11-23 70 views
1

我試圖使用以下代碼將數據發送到我的數據庫,但它不起作用。代碼在此示例之後編寫(http://samcroft.co.uk/2012/posting-data-from-a-phonegap-app-to-a-server-using-jquery/在Phonegap項目中結合使用Ajax,Jquery,mysql,php不起作用

如果有人有一個想法有什麼問題......我感謝任何幫助。

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; 
}); 

PHP代碼上http://www.kauwenberg.com/Commander/core/handleplayer_2.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); 
?> 
+0

有什麼問題?是否重定向到形成行動(同一頁)而不提醒? – Bhadra

+0

「它只是不起作用」以什麼方式?你的問題越具體和明確,你越有可能得到答案。 –

回答

0
$(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; 
}); 

試試這個

0

嗨改變你的提交按鈕<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; 
}); 

它會提醒響應從服務器返回將顯示在警報對話框。

0

當心:你是不是你的報價$ TEAM_NAME,$ player_number和$ PLAYER_NAME在你的SQL代碼,可以非常危險。如果您的查詢中的值未正確引用,則使用mysql_real_escape_string這一事實並不重要;它們仍然會像正常的SQL一樣被解析。

$sql .= "VALUES ('$team_name', '$player_number', '$player_name')"; 

這可能不是它目前無法正常工作的原因,但是當您開始處理其他事情時,它肯定會回覆您。

此外,檢查您的AJAX請求是否到達服務器。如果電話跨越多個域,則您的請求可能會被電話的安全策略阻止。

0

您已經拼寫錯誤,以及:

更迭:功能(數據){

「成功」 這個詞。