问题描述
我创建了一个本地应用程序,它使用ajax从SQL数据库中调用结果。
该系统运行良好,但是如果某些搜索以'表示,则系统将失败,并且出现以下错误“注意:数组到字符串的转换是..”。
这是我的Javascript,它调用ajax并将结果推送到HTML页面上的div。
有什么办法可以解析下面的代码?
$('input#prodsearch').keypress(function(e) {
var key = e.which;
if (key == 13) { // the enter key
var name = $('input#prodsearch').val();
if ($.trim(name) != '') {
$.post('assets/ajax/prodsearch.php', { prodsearch: name }, function(data) {
$('#stockresults').html(data)
});
}
}
});
这是我的php减去输出结果行的while语句。
if (isset($_POST['prodsearch']) === true && empty($_POST['prodsearch']) === false) {
$query = "SELECT STKCODE, STKNAME
FROM dbo.STOCK
WHERE (STKNAME LIKE '%" . $_POST['prodsearch'] . "%' OR STKCODE LIKE '" . $_POST['prodsearch'] . "%')
order by STKCODE ASC";
};
1楼
Ben
0
2015-08-07 08:46:02
理想情况下,您需要对通过AJAX发送的字符串进行编码。
更改此行:
$.post('assets/ajax/prodsearch.php', { prodsearch: name }, function(data) {
对此:
$.post('assets/ajax/prodsearch.php', { prodsearch: encodeURIComponent(name) }, function(data) {