我是AJAX的初学者;javascript,所以请耐心等待。
我想把AJAX中的一个变量(document.getElementById('txtSearch').value
)传递给PHP,所以我试着编写这样的代码:
$("#btnSearch").click(function() {
var keyword = "";
alert(document.getElementById('txtSearch').value);
$.ajax({
url: BASE_URL + 'index.php/jwm/search', //This is the current doc
type: "POST",
dataType:'json', // add json datatype to get json
data: ({keyword: document.getElementById('txtSearch').value}),
error : function(jq, st, err) {
console.log(arguments);
alert(st + " : " + err);
},
success: function(data){
alert(data);
}
});
});
然而,我得到了一个错误:parse error syntax error unexpected token <
,有时错误会变为这样:parse error syntax error unexpected token T
。
编辑这是我的PHP代码:
function search() {
$keyword = $_POST['keyword'];
echo "TEST : $keyword";
$result = $this->jwm_m->getDataByKeyword('msmall', $keyword);
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
header('Content-type: application/json', true);
echo json_encode($result);
}
这就是我的控制台得到的:
arguments: null
caller: null
length: 0
name: ""
我的目标是通过document.getElementById('txtSearch').value
,请帮帮我。
感谢您的帮助:D
关于您更新的问题,需要注意的几件事,在PHP代码中:
-
您提到您得到一个错误
parse error syntax error unexpected token T
。这可能是因为PHP中的echo "TEST : $keyword";
导致响应为无效的JSON。 -
您在
echo "TEST : $keyword";
之后设置标头,这将引发类似于Cannot modify header information - headers already sent by...
的PHP警告
因此,请删除echo "TEST : $keyword";
行,然后尝试再次发送请求。这一次,请打开开发人员工具的网络面板,并检查发送/接收的数据。如果您仍然有问题,请使用服务器响应更新您的问题&请求主体。你提供的信息越多,你就越有可能得到一个好的解决方案。