使用自动完成功能从mysql中获取数据

时间:2017-02-20 18:29:47

标签: php jquery html mysql

我试图从mySQL数据库获取数据而不刷新我的页面。为了从用户获取数据,我也使用来自同一数据库的livesearch。当我按下按钮时,我想显示用户输入的数据库中的行数据。我的问题是php,当我按下按钮输出编码结果时,输出是" null"我无法理解为什么它这样说,因为我从数据库中获取值。

早点谢谢你的帮助:)

这是我的代码:

HTML:

<h1>LIVE SEARCH WITH AJAX TEST</h1>
<div class="ui-widget">
   <label for="recherche">Recherche: </label>
   <input id="recherche" name="recherche">
   <button name="button" id="button">OK</button>
</div>
<br>
<div id="namedata"></div>

JQuery的:

$(document).ready(function(){
    $('#button').on('click', function(){
        var recherche = $('#recherche').val();
        if ($.trim(recherche) != ''){
            $.post('getvalue.php', {recherche: recherche}, function(data){
                $('#namedata').text(data);
            });
        }
    });  
});

PHP:

<?php

if (isset($_POST['recherche']) === true && empty($_POST['recherche']) === false) {
    require 'connect.php'; 
    $query = mysql_query("SELECT capacityingo FROM smartphone WHERE name ='" . mysql_real_escape_string(trim($_POST['recherche'])) . "' "); 
    $row = mysql_fetch_array($query);
    echo json_encode($row);
}

1 个答案:

答案 0 :(得分:0)

我相信错误发生在你的PHP脚本中,但是,因为我有PHP7.1,所以我无法测试它以查看错误的位置。 我希望这段代码适合你。我添加了错误处理,因为你的代码缺乏整体。

$(document).ready(function(){
    $('#recherche').on('input', function(){ /* in place of your button i put your input and checked for it's update - and don't forget to make a copy of this for your search button too, I don't wanna make this update too long */
        var recherche = $('#recherche').val();
        if ($.trim(recherche) != ''){
            $.post('search.php', {'recherche': recherche}, function(data){
                $('#namedata').text(data);
            });
        }
    });
});

<强>更新 如果你想创建一个自动完成搜索框,你应该考虑&#34;自动完成&#34;每当用户在其更新的搜索框中键入内容时,就像部分一样。你的JS中有这样的东西:

=

同样对于搜索系统,您不应在语句中使用SQL运算符。您应该使用LIKE $recherche = '%'. $recherche .'%'; 运算符,并将您的搜索查询放在PHP中,如下所示:

SQL

var serviceUri = new Uri("https://tiledbasemaps.arcgis.com/arcgis/rest/services/World_Imagery/MapServer"); var tokenUri = new Uri("https://www.arcgis.com/sharing/rest"); try { var serverInfo = new ServerInfo { ServerUri = tokenUri, TokenAuthenticationType = TokenAuthenticationType.OAuthClientCredentials, OAuthClientInfo = new OAuthClientInfo { ClientId = MYCLIENTID, ClientSecret = MYCLIENTSECRET) }, }; AuthenticationManager.Current.RegisterServer(serverInfo); var cred = await AuthenticationManager.Current.GenerateCredentialAsync(tokenUri, new GenerateTokenOptions { }); var exportTask = await ExportTileCacheTask.CreateAsync(serviceUri, cred); var exportParams = await exportTask.CreateDefaultExportTileCacheParametersAsync(aoi, 50000, 10000); job = exportTask.ExportTileCache(exportParams, localFilePath); job.JobChanged += ExportJob_JobChanged; } catch (Exception e) { e.ToString(); } 语句上方清除和转义字符之后。