我尝试从html插入到mysql (Phonegap)。但他没有……我错在哪里?对不起,我的英语不好,谢谢你的帮助…我有~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~HTML:
<div id="landmark-1" data-landmark-id="1">
<form>
<div id="block1">Datum:<input type="date" id="date" name="date"></div>
<div id="block2">Baustelle: <input name="bau" id="bau" class="tb1" type="text" size="18" /></div>
<div id="block4">
<input type="submit" value="Speichern">
</div>
</form>
</div>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Post.js
$(document).bind('deviceready', function(){
$(function(){
$('form').submit(function(){
var landmarkID = $(this).parent().attr('data-landmark-id');
var postData = $(this).serialize();
alert(postData+'&lid='+landmarkID);
$.ajax({
type: 'POST',
data: postData+'&lid='+landmarkID,
//change the url for your project
url: "http://voss-hm.de/zeitserver/save.php",
success: function(data){
console.log(data);
alert('Your comment was successfully added');
},
error: function(){
console.log(data);
alert('There was an error adding your comment');
}
});
return false;
});
});
});
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~PHP:
<?php
$server = "--------------";
$username = "--------------";
$password = "--------------";
$database = "--------------";
$con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error());
mysql_select_db($database, $con);
$id = $_Post["id"];
$date = ($_Post["date"]);
$baustelle = ($_Post["bau"]);
$sql = "INSERT INTO timesave.$id (datum, baustelle, anfang, ende, pause) VALUES ('$date' , '$baustelle', '', '', '')";
if (!mysql_query($sql, $con)) {
die('Error: ' . mysql_error());
} else {
echo "Comment added";
}
mysql_close($con);
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这里有几个错误。
首先,使用$_POST而不是$_POST(区分大小写)。
第二,你不应该再使用mysql_*函数。请阅读本教程:https://www.binpress.com/tutorial/using-php-with-mysql-the-right-way/17
你的脚本现在很容易受到很多攻击,你真的需要学会转义POST值。你的脚本也将不工作,如果你有单引号在你的张贴值。下面的链接将教你如何处理这个问题。
从PHP脚本返回json编码的对象也是一个好主意。
- 是
$_POST
而不是$_Post
- 请勿使用
mysql_
-functions!使用mysqli_
或PDO代替。