当前位置: 代码迷 >> JavaScript >> 阿贾克斯推动
  详细解决方案

阿贾克斯推动

热度:62   发布时间:2023-06-06 08:57:57.0

我创建了一个本地应用程序,它使用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";  

};

理想情况下,您需要对通过AJAX发送的字符串进行编码。

更改此行:

$.post('assets/ajax/prodsearch.php', { prodsearch: name }, function(data) {

对此:

$.post('assets/ajax/prodsearch.php', { prodsearch: encodeURIComponent(name) }, function(data) {

  相关解决方案