
Database table
CREATE TABLE IF NOT EXISTS `search` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`img` varchar(255) NOT NULL,
`desc` text NOT NULL,
`url` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | <!DOCTYPE html> <html> <head> <meta charset= "utf-8" > <meta name= "viewport" content= "width=device-width, initial-scale=1.0" > <title>Create a Jquery/Ajax, php, mysqli - Style suggestion search</title> <script> function find(textboxString) { if (textboxString.length == 0) { $( '#resultbox' ).fadeOut(); // Hide the resultbox box } else { $.post( "ajaxsuggestdata.php" , {queryString: "" +textboxString+ "" }, function (data) { // Do an AJAX call $( '#resultbox' ).fadeIn(); // Show the resultbox box $( '#resultbox' ).html(data); // Fill the resultbox box }); } // Fade out the resultbox box when not active $( "input" ).blur( function (){ $( '#resultbox' ).fadeOut(); }); // Safely inject CSS3 and give the search results a shadow var cssObj = { 'box-shadow' : '#888 5px 10px 10px' , // Added when CSS3 is standard '-webkit-box-shadow' : '#888 5px 10px 10px' , // Safari '-moz-box-shadow' : '#888 5px 10px 10px' }; // Firefox 3.5+ $( "#resultbox" ).css(cssObj); } </script> </head> <body> <div style= "margin-left:50px" > <div><h2>What are you looking for ?</h2></div> <form id= "searchwrapper" > <div> <input type= "text" size= "30" class = "searchbox" value= "" id= "textboxString" onkeyup= "find(this.value);" /> </div> <div id= "resultbox" ></div> </form> </div> <style> body, div, img, p { padding:0; margin:0; } a img { border:0 } body { font-family: "Lucida Grande" , "Lucida Sans Unicode" ,Arial,Verdana,sans-serif; } #searchwrapper { width:310px; height:40px; background-image:url(img/searchbox.jpg); background-repeat:no-repeat; padding:0px; margin:0px; position:relative; } #searchwrapper form { display:inline ; } .searchbox { border:0px; background-color:transparent; position:absolute; top:5px; left:9px; width:256px; height:28px; color:#FFFFFF; } #dbresults { border-width:1px; border-color:#919191; border-style:solid; width:310px; font-size:10px; margin-top:20px; -moz-box-shadow:0px 0px 3px #aaa; -webkit-box-shadow:0px 0px 3px #aaa; box-shadow:0px 0px 3px #aaa; -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px; padding-top:42px; } #dbresults a { display:block; background-color:#D8D6D6; clear:left; height:56px; text-decoration:none; } #dbresults a:hover { background-color:#b7b7b7; color:#ffffff; } #dbresults a img { float:left; padding:5px 10px; } #dbresults a span { color:#555555; } #dbresults a:hover span { color:#f1f1f1; } </style> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | //ajaxsuggestdata.php <p id= "dbresults" > <?php $db = new mysqli( 'localhost' , 'root' , '' , 'testingdb' ); if (! $db ) { echo 'ERROR: Could not connect to the database.' ; } else { // Is there a posted query string? if (isset( $_POST [ 'queryString' ])) { $queryString = $db ->real_escape_string( $_POST [ 'queryString' ]); // Is the string length greater than 0? if ( strlen ( $queryString ) >0) { $query = $db ->query( "SELECT * FROM searchs WHERE name LIKE '%" . $queryString . "%' ORDER BY name LIMIT 5" ); if ( $query ) { while ( $result = $query ->fetch_object()) { echo '<a href="' . $result ->url. '">' ; echo '<img src="img/' . $result ->img. '" alt="" />' ; $description = $result ->desc; if ( strlen ( $description ) > 80) { $description = substr ( $description , 0, 80) . "..." ; } echo '<span>' . $description . '</span></a>' ; } } else { echo 'ERROR: There was a problem with the query.' ; } } else { // Dont do anything. } // There is a queryString. } else { echo 'There should be no direct access to this script!' ; } } ?> </p> |