Author: Hexasoft Development Language: php
Description: Not specified Timestamp: 2018-03-29 03:37:17 +0000
View raw paste Reply
  1.  
  2. Paste2
  3.  
  4.     Create Paste
  5.     Followup Paste
  6.     QR
  7.  
  8. <?php
  9. /********************************************************************************/
  10. /* Description: This codewill demonstrate how to implement the autocomplete search function by using php and ajax.  */
  11. /*              For information, please visit https://www.ip2location.com/      */
  12. /********************************************************************************/
  13. /* You can obtain free IPV6 database at http://www.ip2location.com/free/ipv6 */
  14. ?>
  15.  
  16.     <!DOCTYPE html>
  17.     <html>
  18.             <head>
  19.                     <title>City Search Example Code Auto Complete</title>
  20.                     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
  21.                     <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-3-typeahead/4.0.2/bootstrap3-typeahead.min.js"></script>  
  22.                     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />  
  23.             </head>
  24.             <body>
  25.                     <br /><br />
  26.                     <div class="container" style="width:600px;">
  27.                             <h2 align="center">City Search Example Code Auto Complete</h2>
  28.                             <br /><br />
  29.                             <form action="" method="post">
  30.                                     <label>Country: </label>
  31.                                     <?php
  32.                                             //connect to database
  33.                                             $connect = mysqli_connect("localhost", "root", "", "ip2location");
  34.                                            
  35.                                             //retrieve countryName based on ipaddress
  36.                                            
  37.                                             //Get the visitor IP address
  38.                                             //$ip = $_SERVER['REMOTE_ADDR'];
  39.                                             //In case you are testing locally with 127.0.0.1,
  40.                                             //you can uncomment the below line to assign the IP address
  41.                                             //to 8.8.8.8 (or whatever) for your testing.
  42.                                             $ip= "8.8.8.8";
  43.                                            
  44.                                            
  45.                                             // Function to convert IP address (xxx.xxx.xxx.xxx) to IP number (0 to 256^4-1)
  46.                                             function Dot2LongIP ($ip) {
  47.                                                     if ($ip == ""){
  48.                                                             return 0;
  49.                                                     }else {
  50.                                                             $ips = explode(".", $ip);
  51.                                                             return ($ips[3] + $ips[2] * 256 + $ips[1] * 256 * 256 + $ips[0] * 256 * 256 * 256);
  52.                                                     }
  53.                                             }
  54.                                             // Convert IP address to IP number for querying database
  55.                                             $ipno = Dot2LongIP($ip);
  56.                                            
  57.                                             //start to query from database
  58.                                             $query = 'select DISTINCT country_name,country_code from ip2location_db3lite where "'.$ipno.'"<= ip_to AND ip_from<="'.$ipno.'"';
  59.                                             $result = mysqli_query($connect, $query);
  60.      
  61.                                             //check if query is sucesss
  62.                                             if(!empty($result)){
  63.                                                     while($row = mysqli_fetch_assoc($result)){
  64.                                                             echo '<label id="country_name">' . $row["country_name"] .'</label>';
  65.                                                             //store country code in a variable for retrieve the region name and city name
  66.                                                             $country_code = $row["country_code"];
  67.                                                     }      
  68.                                             }
  69.                                     ?>
  70.                                     <br /><br />
  71.                                     <label>Region Name:</label>
  72.                                     <input type="text" name="region" id="region"  class="form-control input-lg" autocomplete="off" placeholder="Type Region Name" />
  73.                                     <br /><br />
  74.                                     <label>City Name:</label>
  75.                                     <input type="text" name="city" id="city" class="form-control input-lg" autocomplete="off" placeholder="Type City Name" />
  76.                                     <br /><br />
  77.                                     <input class="btn btn-default" type="submit" value="submit">
  78.                             </form>
  79.                     </div>
  80.             </body>
  81.     </html>
  82.      
  83.     <script>
  84.     $(document).ready(function(){
  85.             $('#region').typeahead({
  86.                     source: function(query, result){
  87.                             //call php variable into javascript by using php print method
  88.                             var country = "<?php print($country_code); ?>";
  89.                             $.ajax({
  90.                                     url:"fetch.php",
  91.                                     method:"POST",
  92.                                     data:{country_code:country,query:query},
  93.                                     dataType:"json",
  94.                                     success:function(data){
  95.                                             result($.map(data, function(item){
  96.                                                     return item;
  97.                                             }));
  98.                                     }
  99.                             })
  100.                     }
  101.             });
  102.             $('#city').typeahead({
  103.                     source: function(query1, result){
  104.                             var name = document.getElementById("region").value;
  105.                             //call php variable into javascript by using php print method
  106.                             var country = "<?php print($country_code); ?>";
  107.                             $.ajax({
  108.                                     url:"fetch.php",
  109.                                     method:"POST",
  110.                                     data:{country_code:country,region_name:name,query1:query1},
  111.                                     dataType:"json",
  112.                                     success:function(data){
  113.                                             result($.map(data, function(item){
  114.                                                     return item;
  115.                                             }));
  116.                                     }
  117.                             })
  118.                     }
  119.             });
  120.     });
  121.     </script>
  122.      
  123.      
  124.     <?php
  125.     //connect to database
  126.     $connect = mysqli_connect("localhost", "root", "", "ip2location");
  127.      
  128.     //select the region name based on the user input
  129.     if(empty($_POST["query1"])) {
  130.             //retrieve the country name from index.php
  131.             $country_code = $_POST['country_code'];
  132.             //retrieve user input to do autocomplete
  133.             $request = mysqli_real_escape_string($connect, $_POST["query"]);
  134.             $query = "select DISTINCT region_name from ip2location_db3lite where country_code = '".$country_code."' AND region_name LIKE '{$request}%' GROUP BY region_name";
  135.             $result = mysqli_query($connect, $query);
  136.             $data = array();
  137.             if(mysqli_num_rows($result) > 0){
  138.                     while($row = mysqli_fetch_assoc($result)){
  139.                             $data[] = $row["region_name"];
  140.                     }
  141.             echo json_encode($data);
  142.             }
  143.     }else{
  144.             //select the city name based on the user input
  145.            
  146.             //retrieve the country name from index.php
  147.             $country_code = $_POST['country_code'];
  148.             //retrieve user input to do autocomplete
  149.             $request = mysqli_real_escape_string($connect, $_POST["query1"]);
  150.             $region_name = mysqli_real_escape_string($connect, $_POST["region_name"]);
  151.             $query = "select DISTINCT city_name from ip2location_db3lite where country_code = '".$country_code."' AND region_name = '".$region_name."' AND city_name LIKE '{$request}%' GROUP BY city_name";
  152.             $result = mysqli_query($connect, $query);
  153.             $data = array();
  154.             if(mysqli_num_rows($result) > 0){
  155.                     while($row = mysqli_fetch_assoc($result)){
  156.                             $data[] = $row["city_name"];
  157.                     }
  158.             echo json_encode($data);
  159.             }      
  160.     }
  161.     ?>
  162.      
  163.  
  164.  
  165. Description: This codewill demonstrate how to implement the autocomplete search function by using php and ajax.
  166. 2006 - 2018 Paste2.org.
  167. Follow paste2.org on Twitter
  168.  
View raw paste Reply