script search fara buton

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
Avatar utilizator
trif
Mesaje:500

script search fara buton

salut, am si eu un script care cauta in bd dar fara secventa cu buton dar nu imi merge.
am asa:
in index.php

Cod: Selectaţi tot

<script type="text/javascript" src="jquery-1.2.1.pack.js"></script>
<script type="text/javascript">
function find(){
      if (window.XMLHttpRequest) {
        XMLHttpRequestObject = new XMLHttpRequest();
      } else{
        XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
      }
         XMLHttpRequestObject.onreadystatechange = function() 
          { 
            if (XMLHttpRequestObject.readyState == 4 && 
              XMLHttpRequestObject.status == 200) { 
                document.getElementById('result').innerHTML = XMLHttpRequestObject.responseText ; 
            } 
          } 
          XMLHttpRequestObject.open('GET', 'search.php?query=' document.search.query.value); 
    XMLHttpRequestObject.send();
        } 
</script>

Cod: Selectaţi tot

<form id="search" name="search">
Query: <input name="query" onkeyup="find();" placeholder="Scrie cantare" type="text"></form>
<div id="result">te
</div>
si search.php

Cod: Selectaţi tot

<?php
   if (isset($_GET['query'])){
      $query = $_GET['query'];
   }
//connect to database
 
if(@mysql_connect('localhost',"root","ialexs")){
     if(mysql_select_db('cantari_ppt')){
//if nothing is entered
if(!empty($query)){
//Fetch from database
    $sql = "SELECT * FROM cantari_ppt WHERE `denumire` LIKE '$query%' ORDER BY denumire";
    $sql_run = mysql_query($sql);
    while ($query_row = mysql_fetch_assoc($sql_run)){
    echo '<a href="cantare.php?id='.$query_row['id_c'].'">'.$query_row['denumire'].'</a><br>
';
   }
 }
 }
}
 ?>
daca intru in index.php si scriu imi apare in bara asta: ?query=as si trebuia sa imi apara search.php?query=as nu stiu care este problema si faza este ca nu imi apare in index nici un rezultat. daca ma duc pe search.php si scriu search.php?query=a imi litera a imi apare toate cantarile care incep cu litera a si daca mai scriu asta imi apare toate cantarile care incep cu asta. nu stiu de ce nu face legatura cu index si sa imi apara asa frumos cum trebuie. astept raspuns. va multumesc anticipat. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

trif Mesaje:500
salut, am reusit ceea ce am zis ca vreau mai sus, asa cum este aici mai jos:
index.php

Cod: Selectaţi tot

<script type="text/javascript" src="jquery-1.2.1.pack.js"></script>
<script type="text/javascript">
	function lookup(inputString) {
		if(inputString.length == 0) {
			// Hide the suggestion box.
			$('#suggestions').hide();
		} else {
			$.post("cautare.php", {queryString: ""+inputString+""}, function(data){
				if(data.length >0) {
					$('#suggestions').show();
					$('#autoSuggestionsList').html(data);
				}
			});
		}
	} // lookup
</script>

Cod: Selectaţi tot

<form id="search" name="search">
Cauta cântare: <input type="text" size="50" name="term" value="" placeholder="Scrie numele cântarii" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" />
</form>
<div class="suggestionsBox" id="suggestions" style="display: none;">
				<div class="suggestionList" id="autoSuggestionsList">
				</div>
</div>
cautare.php

Cod: Selectaţi tot

<?php
	$db = new mysqli('localhost', 'root' ,'', '');
	
	if(!$db) {
		echo 'Nu se poate conecta la Baza de date!';
	} else {
		if(isset($_POST['queryString'])) {
			$queryString = $db->real_escape_string($_POST['queryString']);			
			if(strlen($queryString) >0) {
				$query = $db->query("SELECT * FROM cantari_ppt WHERE aprobare = 1 AND denumire LIKE '$queryString%' ORDER BY denumire LIMIT 20");
				if($query) {
					while ($result = $query ->fetch_object()) {
	         			//echo ''.$result->denumire.'<br>';
						echo '<img src="powerpoint_icon.png" width="24" height="24"> <a href="class.CountAccess.php?urlf='.$result->urlf.'">'.$result->denumire.'</a><br>';
	         		}
					
				} else {
					echo 'A aparut o problema. nu este query';
				}
			} else {
			}
		}
		 else {
			echo 'Nu s-a trimis nimic de la index!';
		}
			
	}
?>
ceea ce vreau acum este o singura dorinta, cum pot modifica acest cod sau ce trebuie adaugat ca sa am obtiunea checkbox. adica atunci cand aleg sa imi caute doar doar dupa anumite criterii. am modificat codul asa:
index.php

Cod: Selectaţi tot

<form id="search" name="search">
Cauta cântare: <input type="text" size="50" name="term" value="" placeholder="Scrie numele cântarii" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" />
Alege criteriul de ordonare a rezultatelor: 
<input type="checkbox" name="criteriu" value="t" onclick="this.form.submit()">Tineret
<input type="checkbox" name="criteriu" value="cr" onclick="this.form.submit()">Carte Rosie
<input type="checkbox" name="criteriu" value="d" onclick="this.form.submit()">Diverse
</form>
si la cautare.php am modificat asta:

Cod: Selectaţi tot

$criteriu = isset($_POST['criteriu']) ? $_POST['criteriu'] : 't';
$query = $db->query("SELECT * FROM cantari_ppt WHERE aprobare = 1 AND $criteriu = categoria AND denumire LIKE '$queryString%' ORDER BY denumire LIMIT 20");
. nu imi afiseaza nimic ci imi zice ca query nu este bun. ce nu am facut bine. si mai este o problema ca atunci cand selectez nu imi ramane selectat cum ar trebui ca sa imi ramana selectat. multumesc anticipat. astept raspuns. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje:4343
Nu se adauga mai multe checkbox cu acelasi "name" intr-un form, asta se aplica la butoanele "radio".
1. Incearca sa inlocuiesti "checkbox" cu "radio".
2. Fooseste functia javaScript asa:

Cod: Selectaţi tot

  var criteriu = '';
  function lookup(inputString) {
      if(inputString.length == 0) {
         // Hide the suggestion box.
         $('#suggestions').hide();
      } else {
         $.post("cautare.php", {queryString: ""+inputString+"&criteriu="+criteriu}, function(data){
            if(data.length >0) {
               $('#suggestions').show();
               $('#autoSuggestionsList').html(data);
            }
         });
      }
   }
3. inlocuieste codul din butoane:

Cod: Selectaţi tot

onclick="this.form.submit()"
Cu:

Cod: Selectaţi tot

onclick="criteriu=this.value"

trif Mesaje:500
ms de raspuns.
am facut cum ai zis dar nu imi merge. am facut asa:

Cod: Selectaţi tot

$criteriu = $_GET['criteriu'];
$query = $db->query("SELECT * FROM cantari_ppt WHERE aprobare = 1 AND $criteriu = categoria AND denumire LIKE '$queryString%' ORDER BY denumire LIMIT 20");
si

Cod: Selectaţi tot

<input type="radio" name="criteriu" value="t" onclick="criteriu=this.value">Tineret
<input type="radio" name="criteriu" value="cr" onclick="criteriu=this.value">Carte Rosie
<input type="radio" name="criteriu" value="d" onclick="criteriu=this.value">Diverse</form>
si

Cod: Selectaţi tot

  var criteriu = '';
  function lookup(inputString) {
      if(inputString.length == 0) {
         // Hide the suggestion box.
         $('#suggestions').hide();
      } else {
         $.post("cautare.php", {queryString: ""+inputString+"&criteriu="+criteriu}, function(data){
            if(data.length >0) {
               $('#suggestions').show();
               $('#autoSuggestionsList').html(data);
            }
         });
      }
   }
si imi zice ca nu este bun query. adica nu preia ceea ce aleg eu. multumesc anticipat. astept raspuns. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje:4343
Normal ca nu preia, daca tu trimiti prin POST, iar in PHP preiei cu GET.
Poate ar trebui:

Cod: Selectaţi tot

$criteriu = $_POST['criteriu'];
 

Subiecte similare