我正在尝试做一些非常简单的事情:将 2 个文本变量传递给 php 脚本并将它们插入 MySQL 数据库。但是出于某种原因,我无法让变量传递(所以我的数据库中只有空记录)。
function ajaxCall(){
$.ajax({
type: "GET",
url: "http://www.*.be/bubblingAjax.php",
cache: false,
data: "colour="+colour+"&size="+size,
dataType: "html",
success: onSuccess
});
return false;
};
还有 PHP:
<?php
try
{
$connection = mysql_connect("#");
mysql_select_db("#");
$colour = mysql_real_escape_string($_GET['colour']);
$size = mysql_real_escape_string($_GET['size']);
mysql_query("INSERT INTO bubble (colour, size) VALUES ('$colour', '$size')");
mysql_close($connection);
echo "SUCCESS";
echo $colour;
echo $size;
}
catch(Exception $e)
{
echo $e->getMessage();
}
?>
有人愿意快速浏览一下并指出我的——可能是显而易见的——错误吗?这让我抓狂了一天多。
最佳答案
这必须有效:
<script type="text/javascript">
$(document).ready(function() {
//you can wrap the code into an event, e.g click()
var colour=...
var size=...
$.post("http://www.website.com/bubblingajax.php", { colour: colour, size: size },
function(data) {
alert("Respond: " + data);
});
});
</script>
和 PHP(只更改 get to post)
<?php
try
{
$connection = mysql_connect("#");
mysql_select_db("#");
$colour = mysql_real_escape_string($_POST['colour']);
$size = mysql_real_escape_string($_POST['size']);
mysql_query("INSERT INTO bubble (colour, size) VALUES ('$colour', '$size')");
mysql_close($connection);
echo "SUCCESS";
echo $colour;
echo $size;
}
catch(Exception $e)
{
echo $e->getMessage();
}
?>
另外为了调试,我建议使用 firebug 或 chrome 的内置检查工具。
关于php - AJAX + jQuery 变量不传递给 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6167340/