select condizionale

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non so se è una cosa difficile, per me si perchè immagino che serva ajax o qualche jquery (di cui non capiasco, diciamo, un acca)
questo è quello che vorrei fare (spero si capisca perchè non scrivo un codice sintatticamente corretto)
ho un form

PHP:
<script type="text/javascript">
function SelectPost()
{
    document.modulo.method = "post";
    document.modulo.action = "<?php $_SERVER['PHP_SELF']; ?>";
    document.modulo.submit();
}
</script>
<form name="modulo" action="" method="post">
indica località <input name="localita" type="text" id="localita"><br>
o seleziona direttamente:
<?php
//..........
//vorrei leggere il valore del campo localita
//e in funzione fare la query per la select
if($_POST['localita']==""){//alla prima chiamata o dopo aver dato la select
	$query="SELECT * FROM mappa ORDER BY localita";
}else{//mentre questa se ho scritto qualcosa in localita
	$query="SELECT * FROM mappa WHERE localita LIKE '%".$_POST['localita']."%' ORDER BY localita";
}
?>
<!--la select alla 1° chiamata della pag o dopo il submit() si riempie con tutti i dati del db-->
<select name="cerca"  onchange="SelectPost()">
<?php
	while($riga=mysql_fetch_array(mysql_query($query)))){
		echo "<option value=\"".$riga['id']."\">".$riga['localita']."</option>";
	}
?>
</select>
</form>
<?php
//e qui elaboro i dati provenienti dalla select
if(isset($_POST['cerca'])){
//......................
}
?>

cioè in pratica se nel campo localita non scrivo nulla nella selcet ho tutte le località
se invece scrivo es. pinco mi mostra tutte e solo le località che contengono pinco
qualcuno può indicarmi come fare?
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
ciao
non so se è una cosa difficile, per me si perchè immagino che serva ajax o qualche jquery (di cui non capiasco, diciamo, un acca)
questo è quello che vorrei fare (spero si capisca perchè non scrivo un codice sintatticamente corretto)
ho un form

PHP:
<script type="text/javascript">
function SelectPost()
{
    document.modulo.method = "post";
    document.modulo.action = "<?php $_SERVER['PHP_SELF']; ?>";
    document.modulo.submit();
}
</script>
<form name="modulo" action="" method="post">
indica località <input name="localita" type="text" id="localita"><br>
o seleziona direttamente:
<?php
//..........
//vorrei leggere il valore del campo localita
//e in funzione fare la query per la select
if($_POST['localita']==""){//alla prima chiamata o dopo aver dato la select
	$query="SELECT * FROM mappa ORDER BY localita";
}else{//mentre questa se ho scritto qualcosa in localita
	$query="SELECT * FROM mappa WHERE localita LIKE '%".$_POST['localita']."%' ORDER BY localita";
}
?>
<!--la select alla 1° chiamata della pag o dopo il submit() si riempie con tutti i dati del db-->
<select name="cerca"  onchange="SelectPost()">
<?php
	while($riga=mysql_fetch_array(mysql_query($query)))){
		echo "<option value=\"".$riga['id']."\">".$riga['localita']."</option>";
	}
?>
</select>
</form>
<?php
//e qui elaboro i dati provenienti dalla select
if(isset($_POST['cerca'])){
//......................
}
?>

cioè in pratica se nel campo localita non scrivo nulla nella selcet ho tutte le località
se invece scrivo es. pinco mi mostra tutte e solo le località che contengono pinco
qualcuno può indicarmi come fare?

Mi hai dato sempre tu una mano e spero di potertene dare una io una volta tanto xD

Prova a guardare questo
http://jqueryui.com/demos/autocomplete/

L'implementazione non mi sembra difficile.

Fammi sapere

Edit:
Mi sa che non è quello che cercavi... ho letto meglio, mi spiace
 
Ultima modifica:

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Non capisco bene cosa intendi stampare nel caso di una ricerca, comunque suvvia l'ajax con jquery è facile
ad esempio quando un utente vuole fare una ricerca, con jquery invii la variabile post ad una pagina che ti restituisce
l'output, ad esempio

Codice:
<!-- qui includi jquery-->
<script>

//funzione basato sull'onclick del button del form
function cerca(){
 
 var opzioni =  { 'localita' : document.forms.nomeform.localita.value /*, ...altri valori semmai*/ };
   $.ajax({
        type: "POST",
        url: "cerca.php",
        data: opzioni,
        success: function(output){
            //qui fai quello che vuoi, sapendo che output è ciò che ritorna dalla chiamata
        }
    });
}

E' un esempio scritto a mano libera perciò possono esserci dimenticanze
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
si lo so che dovrebbe essere facile, ma a partire da semplice js non riesco a capirne la logica.
comunque il concetto è questo:
nel db ho es.
bolzano
bergamo
brescia
catania
ferrara
firenze
ecc......
quando chiamo la pagina la select mi si riempie di tutte le province che possso selezionare
se invece nel campo di input text scrivo "f" le select deve ridursi a
ferrara
firenze
se continuo (sempre nel campo text) e scrivo (dopo la f) i quindi "fi"
la select deve ridursi solo a
firenze
ora posso o selezionare nella sel firenze oppure cancellare prima la i e deve tornare
ferrara
firenze
e poi anche la f e quindi tutte
una volta selezionato il valore lo script fa quello che deve fare e la sel si ripresenta completa

è evidente che se nel campo text scrivo "zz" o una lettera inizialenon esistente (non esiste una provincia il cui nome inizia per zz) la select deve essere vuota

in pratica quael $_POST['localita'] che mi gestisce la query dovrebbe funzionare man mano che riempio (se lo riempio) il campo text

p.s.
l'autocomp segnalato da non farebbe il caso mio
lo script che avevo postato in un certo senzo lo fa ma solo dopo che ho selezionato un valore nella select
 
Ultima modifica:

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Ho preparato un piccolo esempio. Pagina index.html:
HTML:
<!DOCTYPE html>
<html lang="it">
    <head>
        <title>Ricerca AJAX</title>
        <meta charset="utf-8">
        <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
        <script src="ajax.js"></script>
    </head>

    <body>
        <form action="#" method="post">
            <p>
                <label for="localita">Filtra località:</label>
                <input type="text" id="localitaSearch">
            </p>

            <p>
                <label for="localita">Località:</label>

                <select name="localita" id="localita">
                </select>
            </p>
        </form>
    </body>
</html>
Pagina ajax.js:
Codice:
function updateSelect(localita)
{
    $.post('search.php', {
        'localita': localita,
    }, function(data) {
        $("#localita").html("");

        for (var key in data) {
            localita = data[key];
            $("#localita").append('<option value="' + localita.id + '">' + localita.localita + '</option>');
        }
    }, 'json');
}

$(function() {
    updateSelect('');

    $("#localitaSearch").keyup(function() {
        updateSelect($(this).val());
    });
});
Pagina search.php:
PHP:
<?php
try {
    $pdo = new PDO('mysql:host=localhost;dbname=test', 'root');
} catch (PDOException $e) {
    header('HTTP/1.0 500 Internal Server Error');
    exit();
}

$localita = isset($_POST['localita']) ? trim($_POST['localita']) : '';

if ($localita == '') {
    $stm = $pdo->query('SELECT * FROM mappa');
} else {
    $stm = $pdo->prepare('SELECT * FROM mappa WHERE localita LIKE ?');
    $stm->execute(array("{$localita}%"));
}

$results = $stm->fetchAll(PDO::FETCH_ASSOC);

echo json_encode($results);
Dimmi cosa non hai capito (perché qualcosa ci sarà di certo :evil:).
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
Ho modificato il file Javascript per correggere un problema grafico.
quale? poi visto che sei in vena di correggere, potresti scrivere il search in formato "umano" sto impazzendo con le pdo.
so che prima o poi le vecchie istruzioni diverranno obsolete e non più supportate, ma se durano ancora qualche anno... poi non me ne può "fregà de meno" (credo che a roma si dica così)


@IImanuII
no problem, comunque grazie
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
F select condizionale jQuery 1
Fabrizio Fiorita Compilazione condizionale delle opzioni di <select> PHP 4
L Ripetere Campi disabilitando input in riferimento ad un valore della select jQuery 0
otto9due Ordinare option di una select Javascript 5
W MySQL ciclo in SELECT MySQL 0
W MySQL SELECT list dinamica MySQL 0
M Select Option dentro una Table jQuery 2
G Colorare menu select attraverso ricerca php PHP 0
L problema con query select PHP 2
F menù select dinamico da db in php PHP 3
D popolare campi tra th alla select PHP 36
M Estrarre valore con SELECT COUNT PHP 0
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
L Select Dinamiche...da txt? PHP 3
E Php select option e ajax PHP 23
R Select concatenata che non funziona la seconda volta Ajax 3
L select join e sottrazione punti PHP 13
L input dati con inser into select ? PHP 4
V hierarchy-select jQuery 0
Emix Select concatenate php sql ajax PHP 2
F query e form con select multipla PHP 17
T recupero valori select multipla da android Javascript 3
J php, scegliere autista da select e mostrare se ha fatto un incidente PHP 8
Tommy03 Select in ordine per numero di record MySQL 7
T problema con select dinamica con jquery Javascript 0
J Far comparire e scomparire un div con un select Javascript 1
M Opzioni select da 1 a 200 PHP 0
I Fatal error: Query Failed! SQL: SELECT * INTO OUTFILE PHP 1
C input in sostituzione della select PHP 2
G Insert into select - Aiuto MySQL 0
max1974 autocomplete trigger select jQuery 0
X [Select] Valori chiave non presenti in un'altra tabella MySQL 2
M Estrarre dati da una select HTML PHP 3
MarcoGrazia jquery validate, necessità di validare almeno un elemento select su due jQuery 1
T [PHP] Autocompilazione input multiple da una select PHP 1
Alex_70 [PHP] Visualizzare foto tramite select PHP 0
S [PHP] aggiornamento table tramite select senza ricaricare la pagina PHP 5
psicomia Gestione funzione in javascript in tabella richiamare"textarea" valori preimpostati in "select" Javascript 2
M [PHP] Problema con query select PHP 2
C [PHP] Controllo <select> comportamento anomalo PHP 2
G [PHP] Select con opzioni dipendenti da un'altra select PHP 3
L [Javascript] Select option in campi input Javascript 4
M [PHP] Problemi con select PHP 6
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
S [ASP] SALVARE VALORE SELECT OPTION SU CAMPO TABELLA ACCESS Classic ASP 9
max1974 [Javascript] malfunzionamento select Javascript 0
M [PHP] Drop down in campo select PHP 1
D [PHP] Select dinamici PHP 2
G sql select con array in php PHP 1
L [PHP] Form da select compilare campi automaticamente PHP 1

Discussioni simili