jQuery自动完成不显示查询的所有结果

时间:2016-01-08 05:10:37

标签: mysql jquery-autocomplete

我正在使用jQuery自动完成查看结果作为用户类型下拉,在我的情况下我从数据库中获取用户名来显示,

    RecordViewFooter().microphoneButton.addTarget(self, action: "microphoneButtonPressed", forControlEvents: UIControlEvents.TouchUpInside)
    }
    func microphoneButtonPressed(){
    print("microphone button pressed")
    volumeAdjuster = VolumeAdjusterView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: self.view.bounds.height))
    self.view.addSubview(volumeAdjuster!)
}

这里的问题是,很多名字都像o'livia或de'silva,这个额外的 <?php foreach ($stmt = $link->query('select u.id, u.display_name from user u inner join accounts a on u.id=a.uid where a.account_type !="bot" order by u.display_name ASC') as $value) { ?> display_name.push('<?php echo $value["display_name"] ?>'); user_id.push('<?php echo $value["id"] ?>'); <?php } ?> 导致查询出现意外行为,它不显示结果而是打印此错误消息。

'

虽然我知道我没有正确格式化我的查询,但我尝试了很多选项但没有用,知道如何正确地使用所有名称?

3 个答案:

答案 0 :(得分:2)

如果你的字符串只包含'never'...那么可以解决如下... user_id.push( '5648'); display_name.push(“Boody L'Dally”);

答案 1 :(得分:1)

您需要转义来自数据库的数据。 有许多功能可以逃避数据,值得进一步阅读。 以下是您的一个例子:

display_name.push('<?= htmlspecialchars($value["display_name"]) ?>');

答案 2 :(得分:-1)

function autocomplet() {
    var min_length = 0;
    var keyword = $('#country_id').val();
    if (keyword.length >= min_length) {
        $.ajax({
            url: 'ajax_refresh.php',
            type: 'POST',
            data: {keyword:keyword},
            success:function(data){
                $('#country_list_id').show();
                $('#country_list_id').html(data);
            }
        });
    } else {
        $('#country_list_id').hide();
    }
}


function set_item(item) {
    // change input value
    $('#country_id').val(item);
    // hide proposition list
    $('#country_list_id').hide();
}