Autocompletamente con jQuery, PHP e MySQL - Problema con le query

sunlightbanana

Utente Attivo
26 Ott 2011
96
0
6
Salve,
ho un database con varie query, ho creato un campo di input associandolo al database con il plugin autocomplete di jQuery tramite PHP, ecco il codice:

Codice:
$(document).ready(function() {
        $('#auto').autocomplete( {
            source : [<?php
            $stringa="";
            $result=mysql_query("SELECT titolo FROM film WHERE titolo", $conn);
            while($row=mysql_fetch_array($result)){
                $stringa.="\"".$row['titolo']."\", ";
            }
            $stringa=substr($stringa,0,-2);
            echo $stringa
            ?>],
            minLength:2
        });
        })

Scrivendo le prime due lettere nel campo di input mi trova le query corrispondenti.

Il problema è: mi trova solo i campi che iniziano per numero, quelli che iniziano con le lettere no. Vorrei precisare che il campo titolo non è la chiava primaria nel database.

Spero di essere stato chiaro, grazie per l'aiuto!!
 
Salve,
ho un database con varie query, ho creato un campo di input associandolo al database con il plugin autocomplete di jQuery tramite PHP, ecco il codice:

Codice:
$(document).ready(function() {
        $('#auto').autocomplete( {
            source : [<?php
            $stringa="";
            $result=mysql_query("SELECT titolo FROM film WHERE titolo", $conn);
            while($row=mysql_fetch_array($result)){
                $stringa.="\"".$row['titolo']."\", ";
            }
            $stringa=substr($stringa,0,-2);
            echo $stringa
            ?>],
            minLength:2
        });
        })

Scrivendo le prime due lettere nel campo di input mi trova le query corrispondenti.

Il problema è: mi trova solo i campi che iniziano per numero, quelli che iniziano con le lettere no. Vorrei precisare che il campo titolo non è la chiava primaria nel database.

Spero di essere stato chiaro, grazie per l'aiuto!!

Ciao non ho capito bene cosa vorresti fare cmq prova con questo se vuoi un autocomplete richiamando il risultato dal database.

Codice:
				<script type="text/javascript">
				$(document).ready(function(){
				 
					 $('input[type=text]').keyup(function(){
					      
					      var value = $(this).val();
					      
					      if( value.length >= 2 )
					      	$.post( 'db-result.php', { value : value }, function(data){
					      		$('#result').html(data);
					      	});
					
					 });
				
				});
				</script>
 
grazie per la risposta, non riesco a trovare una soluzione e sono sicuro che sia una cavolta.

Il codice che ho postato funziona, l'autocompletamente va ma il problema è che riconosce solo le stringhe del database che iniziano per numero e non per carattere, un esempio:

se scrivo 2001 nel campo dell'input mi appare subito "2001: Odissea nello spazio" e succede con tutti i film del database che iniziano per numero.
Ma se scrivo ad esempio "A Beautiful Mind" non mi appare niente perché inizia per carattere.

:crying::crying::crying:
 
Controlla se i risultati vengono stampati tutti con Ctrl+U visualizza la sorgente.
 
Controlla se i risultati vengono stampati tutti con Ctrl+U visualizza la sorgente.

Ho controllato, mi porta solo le query che iniziano per numero:

Codice:
<script type="text/javascript">
        $(document).ready(function() {
        $('#auto').autocomplete( {
            source : ["14 anni vergine", "1408", "2001: Odissea nello spazio", "2012", "30 giorni di buio", "300", "3ciento - Chi la duro... la vince", "88 minuti", "8mm - Delitto a luci rosse", "9 settimane e ½"],
            minLength:2
        });
        })
    </script>

Si ferma li
 
Prova con questa query: se va
PHP:
$result = mysql_query("SELECT titolo FROM film WHERE titolo", $conn );

if( $result && mysql_num_rows($result) > 0 ){
	
	while ( $obj = mysql_fetch_object($result) )
		$stringa = $obj -> titolo != NULL ? "\"".$obj -> titolo."\", " : NULL;

    $stringa = substr($stringa,0,-2);
	
    echo $stringa;

}
 
Prova con questa query: se va
PHP:
$result = mysql_query("SELECT titolo FROM film WHERE titolo", $conn );

if( $result && mysql_num_rows($result) > 0 ){
	
	while ( $obj = mysql_fetch_object($result) )
		$stringa = $obj -> titolo != NULL ? "\"".$obj -> titolo."\", " : NULL;

    $stringa = substr($stringa,0,-2);
	
    echo $stringa;

}

Ok, va !!! Grandissimo !!!!!!! Grazie tante :):)
 

Discussioni simili