我想要搜索框,用户可以在其中搜索数据库中的名称。
因此,主要的想法是找到名称,如果它可用,或者如果它不可用,则表明它不可用,当用户输入数据为空时,它不应该做任何事情。
PHP文件 -
// url- "/userdata/mydata"
public function mydataAction($id) {
//$id the data which is input by the user
$paramss = array('hosts' => array('localhost:9200'));
$client = new Elasticsearch\Client($paramss); //connect with database
if (strlen($id) > 0) {
// if the input charactar is more than 1
$params = array();
// condition of seach in the elasticsearch by $id
// which is working fine
);
// find the input result
$esresult = $client->search($params);
print_r($esresult);
} else {
// if the input data is less than one or 0
echo "no result";
}
return new Response("ok");
}
HTML ---
<form action="/userdata/mydata/+" {{id}} method="post"> // i think i am not passing the input data as a id properly
<label><input type="text" id="fname" onkeyup="callServer()"></label>
</form>
脚本---
<script>
function callServer() {
var x = document.getElementById("fname").value;
var url = '/userdata/mydata/' + x;
$.ajax({url: url, type: 'POST', })
.done(function () {
});
}
</script>
有谁知道如何解决这个问题。
我想制作一个简单的搜索框,只有在可用的情况下找到该名称,否则显示该名称不可用。
非常感谢先进。
答案 0 :(得分:3)
PHP:
使用"echo json_encode($esresult);"
代替"print_r($esresult);"
JS:
.done(function (result) {
if(result=='no results'){
alert('No results');
} else {
jsonResult = JSON.parse(result);
//do something you your results
}
});