这真是奇怪。我正在尝试将数据提交到服务器并使用PHP脚本解析数据,然后发回响应。正在形成正确形成的URL:
http://localhost/ajax/test.html?row=rec_no_1
,但服务器似乎没有响应PHP脚本中的内容,尽管返回代码为200.事实上,开发人员工具(在谷歌浏览器中)没有提及任何有关PHP文件的内容。 AJAX“data”语句必须格式正确,否则我将无法获得正确的URL。 POST(而不是GET)没有帮助。
如果我将AJAX数据更改为字符串,那么它可以正常工作。这意味着AJAX数据存在问题。但我无法理解URL是否正确形成,并根据我选择的行而改变。
有什么想法吗?
这是Javascript:
$(document).ready(function() {
$(".submit").click(function() {
$.ajax({
type: 'GET',
url: 'getTable.php',
dataType: 'html',
data: {row: $('input[type='checkbox']:checked').val()},
//data: {row: 'rec_no_2'},
success: function($result) {
$('.tableHolder').text($result);
}
});
return false;
});
});
这是PHP代码:
<?php
if (isset($_GET['row'])) {
$tableRow = $_GET['row'];
echo $tableRow;
}
else
echo 'TEST';
?>
答案 0 :(得分:1)
您的语法不正确:
$('input[type='checkbox']:checked').val()
您应该在checkbox
周围使用双引号:
$('input[type="checkbox"]:checked').val()
无论如何在ajax调用之前执行console.log( $('input[type="checkbox"]:checked').val() )
只是为了找出正在发送的值。
答案 1 :(得分:0)
尝试将您的javascript文件移至服务器。 Ajax不适用于跨域。您正在localhost上运行javascript文件并尝试从实时服务器获取信息。将php和javascript文件保存在同一台服务器上,无论是live还是localhost。它会工作正常。
还有一件事,请尝试更改ajax请求的url参数。尝试完整的网址或尝试在你的文件名之前放一个斜杠/。