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 ?

3
  • Why don't you give a try to use Jquery instead of javascript Commented Aug 19, 2017 at 4:56
  • 1
    Look for mysqli or PDO... Commented Aug 19, 2017 at 5: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 and should really use Prepared Statements instead of concatenating your queries, which can be used if you use the above mentioned MySQLi or PDO. Commented Aug 19, 2017 at 6:31

1 Answer 1

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.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.