jQuery,PHP-自动完成-在查询中为搜索变量传递附加变量

时间:2018-07-27 08:57:30

标签: javascript php jquery autocomplete

这是我的第一页,我需要在这里首先按国家/地区过滤自动填充内容。到目前为止,我的过滤器仅按公司名称显示。

[索引页]

    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/minified/jquery-ui.min.css" type="text/css" /> 

<?php 
//query get countries
$sql_getCountries = $db->query('SELECT * FROM tb_country ORDER BY id ASC');


          <select name="f_country_id" class="form-control" id="f_country_id">
            <option value="?cid=0&code=0" >-- Select Country --</option>
            <?php
                while($country = $sql_getCountries->fetch_assoc()){
                    echo '<option ';
                    if($country['id'] == $_GET['cid']){
                        echo ' selected ';
                    }
                    echo 'value="?cid='.$country['id'].'&code='.$country['d_code_country_letter'].'">'.$country['d_name'].'</option>';
                }           
            ?>
          </select>

?>
<script>
    $(function(){
      // bind change event to select
      $('#f_country_id').on('change', function () {
          var url = $(this).val(); // get selected value
          if (url) { // require a URL
              window.location = url; // redirect
          }
          return false;
      });
    });
</script>

      <hr>

<input type='text' name='d_name' value='' class='auto form-control' id="d_name"  placeholder="Name of Company/Establishment" >


    <!--- start here Autoload ////////// --->
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script type="text/javascript" src="http://code.jquery.com/ui/1.10.1/jquery-ui.min.js"></script>    
    <script type="text/javascript">
    $(function() {

        //autocomplete
        $(".auto").autocomplete({
            source: "auto_search.php" ,
            //minLength: 1
        });             

    });
    </script>
    <!--- End here Autoload Scripts ////////// --->

============================  auto_search页面:页面在其中进行过滤的页面。

<?php 
    $stmt = $conn->prepare("SELECT a.* FROM tb_company_establishment a  WHERE a.d_name LIKE :term");
        $stmt->execute(array('term' => '%'.$_GET['term'].'%'));

        while($row = $stmt->fetch()) {
            $return_arr[] =  $row['d_name'];
        }

    } catch(PDOException $e) {
        echo 'ERROR: ' . $e->getMessage();
    }


    /* Toss back results as json encoded array. */
    echo json_encode($return_arr);

?>

请帮助我在javascript上传递var,以便我可以在查询中使用它。

非常感谢。

1 个答案:

答案 0 :(得分:0)

在索引页面中,将选项值替换为国家id

// PHP
while($country = $sql_getCountries->fetch_assoc()){

    echo '<option value="'.$country['id'].'" ($country['id'] == $_GET['cid'] ? 'selected' : '')>'.$country['d_name'].'</option>';
}   

// Javascript
$('#f_country_id').on('change', function () {

  if ( this.value ) {

    $.get('{auto_search_url}', {countryId: this.value}, function(data) {
        console.log(data); // Display the data or reload the web page depends on how you want it
    });

  }

  return false;

});