我是AJAX& amp;的初学者javascript,所以请耐心等待。
我想将一个变量(document.getElementById('txtSearch').value
)从我的AJAX传递给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
答案 0 :(得分:3)
有关更新问题的一些注意事项,请参阅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";
行,然后再次尝试发送请求。这一次,打开开发人员工具的网络面板并检查发送/接收的数据。如果您仍然遇到问题,请使用服务器响应更新您的问题&amp;请求机构。您提供的信息越多,您就越有可能获得良好的解决方案。