如果没有数据,如何设置条件

时间:2015-08-14 14:12:28

标签: javascript php ajax symfony

我想要搜索框,用户可以在其中搜索数据库中的名称。

因此,主要的想法是找到名称,如果它可用,或者如果它不可用,则表明它不可用,当用户输入数据为空时,它不应该做任何事情。

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>

有谁知道如何解决这个问题。

我想制作一个简单的搜索框,只有在可用的情况下找到该名称,否则显示该名称不可用。

非常感谢先进。

1 个答案:

答案 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
     }
});