0

I am new to ajax and require assistance to retrieve data from mysql table to be displayed in search box.

My php form looks like this

<html>
<head>
<script>
function showResult(str) {
  if (str.length==0) {
    document.getElementById("livesearch").innerHTML="";
    document.getElementById("livesearch").style.border="0px";
    return;
  }
  if (window.XMLHttpRequest) {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  } else {  // code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function() {
    if (this.readyState==4 && this.status==200) {
      document.getElementById("livesearch").innerHTML=this.responseText;
      document.getElementById("livesearch").style.border="1px solid #A5ACB2";
    }
  }
  xmlhttp.open("GET","livesearch.php?q="+str,true);
  xmlhttp.send();
}
</script>
</head>
<body>

<form>
<input name ="search" type="text" size="30" onkeyup="showResult(this.value)">
<div id="livesearch"></div>
</form>

</body>
</html> 

My search query is like this

$company_name=mysql_query("SELECT * FROM login 
                                    WHERE 
                                        (company_name LIKE '" . mysql_real_escape_string($_POST['search']) . "')");

                $row = mysql_fetch_assoc($company_name);
                $name = $row['company_name'];

I would like to pass this value back to my search box on partial match. Am i on the right track ?

  • Why don't you give a try to use Jquery instead of javascript – Kavin Smk Aug 19 '17 at 04:56
  • 1
    Look for [mysqli or PDO](https://stackoverflow.com/a/2190766/2159528)... – Louys Patrice Bessette Aug 19 '17 at 05:09
  • 1
    **Don't** use the **deprecated and insecure** _mysql_*-functions. They have been deprecated since PHP 5.5 (in 2013) and were completely removed in PHP 7 (in 2015). Use MySQLi or PDO instead. 2. You are **wide open to** [SQL Injections](http://php.net/manual/en/security.database.sql-injection.php) and should really use [Prepared Statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) instead of concatenating your queries, which can be used if you use the above mentioned MySQLi or PDO. – Milan Chheda Aug 19 '17 at 06:31

1 Answers1

2

You are using GET in your JS, so the vars won't be accessible through $_POST in your php. Change it to $_GET or $_REQUEST in your php and it will work. Besides that your parameter is q and not search.

rndus2r
  • 496
  • 4
  • 17