我试图从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);
}
答案 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();
}
语句上方清除和转义字符之后。