以下のようなコードがあるのですが、
index.php
lang
1<!DOCTYPE html> 2<head> 3</head> 4<body> 5<h1>Test Search</h1> 6 <form id="searchform" method="post"> 7<div> 8 <label for="search_term"></label> 9 <input type="text" name="search_term" id="search_term" /> 10<input type="submit" value="search" id="search_button" /> 11</div> 12 </form> 13 <div id="search_results"></div> 14 <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 15<script type='text/javascript'> 16$(document).ready(function(){ 17$("#search_results").slideUp(); 18 $("#search_button").click(function(e){ 19 e.preventDefault(); 20 ajax_search(); 21 }); 22 $("#search_term").keyup(function(e){ 23 e.preventDefault(); 24 ajax_search(); 25 }); 26}); 27function ajax_search(){ 28 $("#search_results").show(); 29 var search_val=$("#search_term").val(); 30 $.post("./find.php", {search_term : search_val}, function(data){ 31 if (data.length>0){ 32 $("#search_results").html(data); 33 } 34 }) 35} 36</script> 37</body> 38</html>
find.php
lang
1<?php 2define("HOST", "localhost"); 3define("USER", "root"); 4define("PW", "test"); 5define("DB", "test"); 6 7$connect = mysql_connect(HOST,USER,PW) or die('Could not connect to mysql server.' ); 8 9mysql_select_db(DB, $connect) or die('Could not select database.'); 10 11$term = ''; 12 $term = strip_tags(substr($_POST['search_term'],0, 100)); 13 $term = mysql_escape_string($term); 14 15 16 $sql = "select name,phone 17 from directory 18 where name like '%$term%' 19 or phone like '%$term%' 20 order by name asc"; 21 22 $result = mysql_query($sql); 23 24 $string = ''; 25 26 if (mysql_num_rows($result) > 0){ 27 while($row = mysql_fetch_object($result)){ 28 $string .= "<b>".$row->name."</b> - "; 29 $string .= $row->phone."</a>"; 30 $string .= "<br/>\n"; 31 } 32 33 }else{ 34 $string = "No matches!"; 35 } 36 37 echo $string; 38?> 39
検索ボックスに文字を入れれば動作するのですが、
文字を入力後した後に、テキストボックスに何も文字がない場合、directoryテーブルにある全てのレコードが出力されてしまいます..
なにが原因でしょうか?
どなたかアドバイスいただけますでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/11/04 09:52