点击按钮,我无法运行我的php脚本。
如果我通过终端运行脚本,'php get_funny_status.php'
它会返回正确的输出。但是,我无法通过AJAX执行此操作。显示beginning ajax
警报,但我没有得到任何responseText。
我错过了什么吗?
编辑:我在Adobe Dreamweaver中测试此应用程序视图预览浏览器(我不确定这是否与此问题有关)
<script>
$( document ).ready(function() {
$( ".nextStatus" ).click(function() {
alert('beginning ajax');
var statusNumber = '5';
$.get('get_funny_status.php?' + statusNumber, function(responseText) {
alert(responseText);
});
});
});
</script>
这是我的php脚本:
<?php
//initialize DB stuff
$status_text_query = "SELECT * FROM funny_status WHERE STATUS_NUM = '". $_GET['statusNumber']."'";
$result = mysql_query($status_text_query);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo 'num likes: ' . $row['NUM_LIKES'];
echo 'num dislikes: ' . $row['NUM_DISLIKES'];
echo 'status text: ' . $row['STATUS_TEXT'];
echo 'status num: ' . $row['STATUS_NUM'];
}
?>
答案 0 :(得分:1)
解决此问题:
$.get('get_funny_status.php?statusNumber', function(responseText) {
alert(responseText);
});
到
$.get('get_funny_status.php?statusNumber='+statusNumber, function(responseText) {
alert(responseText);
});
答案 1 :(得分:0)
我看到一些问题:
在您的PHP中,_GET
应为$_GET
。
$status_text_query = "SELECT * FROM funny_status WHERE STATUS_NUM = '"
. $_GET['statusNumber']."'";
在您的AJAX通话中,您需要发送参数?statusNumber=' + statusNumber, ...
$.get('get_funny_status.php?statusNumber=' + statusNumber,
function(responseText) {
不一定是语法错误:我注意到您正在使用mysql_*
来访问数据库。这是a bad idea;我建议切换到mysqli_*
函数或PDO类。与此问题相关,如果我将statusNumber
设置为“'; DELETE FROM funny_status;--
”,我将能够删除该表中的所有数据。这称为SQL Injection,这是一个严重的安全问题。