Select Concatenate Ajax, php, sql

Savi

Nuovo Utente
6 Giu 2017
12
0
1
25
Salve, ho un problema sulle select concatenate. Si tratta di 3 select (marca, modello e citta). A seconda della marca , apparirà il proprio modello e di seguito la città. Infine c'è un submit "cerca " che fa comparire il modello e la città selezionata. Il problema è che mi fa visualizzare tutti i modelli e non esclusivamente quello selezionato.

Questa è un pezzo delll'index.php:
PHP:
<html>
<head>

    <title>Car Shop</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.css">
    <link rel="stylesheet" href="Prova.css">
  <link rel="stylesheet" type="text/css" href="ie.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
  <script type="text/javascript" src="js/jquery.js"></script>
  <script type="text/javascript" src="js/script.js"></script>
  <script>
  $(document).ready(function() {
 
    $('#marca').change(function() {
 
        //recupero variabile "discriminante"
        var marca = $("#marca").val();
 
        //chiamata ajax
        $.ajax({
 
        type: "POST",
 
        url: "elaborazione_dati.php",
 
        data: "marca=" + marca,
        dataType: "html",
 
        success: function(msg)
        {
        $("#modelli").html(msg);//stampa i risultati dentro la seconda select
        },
        error: function()
        {
        alert("Chiamata fallita, si prega di riprovare..."); //sempre meglio impostare una callback in caso di fallimento
        }
    });
 });   
 
});//FINE FUNCTION

  $(document).ready(function() {
 
    $('#modelli').change(function() {
 
        //recupero variabile "discriminante"
        var modelli = $("#modelli").val();
 
        //chiamata ajax
        $.ajax({
 
        type: "POST",
 
        url: "elaborazione_dati.php",
 
        data: "modelli=" + modelli,
        dataType: "html",
 
        success: function(msg)
        {
        $("#citta").html(msg);//stampa i risultati dentro la seconda select
        },
        error: function()
        {
        alert("Chiamata fallita, si prega di riprovare..."); //sempre meglio impostare una callback in caso di fallimento
        }
    });
 });   
 
});//FINE FUNCTION
</script>

</head>
<body>

  <div class="navigation">
    <ul>
      <a href="#home">
        <li>Home</li>
      </a>
      <li id="logo">Car Shop</li>
      <a href="#marche">
        <li>Marche</li>
      </a>
    </ul>
  </div>
  <div class="w3-container w3-black w3-padding-64 w3-xxlarge" id="home">
  <div class="w3-content">
<div id="cover">
    <div class="cover-content">
        <h1 align="center">Cerca Auto</h1>
        <form action="elaborazione_dati.php" method="post">
 
                       <!-- Marca -->
        <select name="marca" id="marca" required>
            <option>Scegli Marca...</option>
 
            <?php
                $host="127.0.0.1";
                $username="root";
                $db="auto";

                error_reporting(E_ALL ^ E_DEPRECATED);
                mysql_connect("localhost", "root") or die ("Non riesco a creare la connessione");
                mysql_select_db($db) or die ("Non trovo il DB");
                  
                $query= "SELECT Nome FROM concessionaria";
                $ris = mysql_query($query);
                    
                while ($riga = mysql_fetch_array($ris)) {
                    
            ?>
            
                <option><?php echo $riga['Nome']; ?></option>
                <?php   } ?>
        </select>
            
         <!-- Modello -->
        <select name="modelli" id="modelli" required>
        </select><br><br><br><br /><br />

          <!-- Città -->
        <select name="citta" id="citta" required>
        </select>
        <br /><br /><br /><br /><br />
                    <input type="submit" value="Cerca" name="submit">
        </form>
      </div>
  </div>

Questa è la pagina elaborazione_dati.php, dove vengono effettuate le query :

PHP:
<html>
<head>
  <title>Car Shop</title>
</head>
<body>

<?php

    $host="127.0.0.1";
    $username="root";
    $db="auto";
    $marca=$_POST['marca'];
    $modelli=$_POST['modelli'];

    error_reporting(E_ALL ^ E_DEPRECATED);
    mysql_connect($host, $username) or die ("Non riesco a creare la connessione");
    mysql_select_db($db) or die ("Non trovo il DB");

    $sql = "SELECT Modello FROM automobile INNER JOIN concessionaria ON (ID_C=ID_Concessionaria) WHERE Nome = '$marca'";

    $ris = mysql_query($sql);

    echo "<option>Scegli</option>";

    while ($riga = mysql_fetch_array($ris)) {

       echo "<option>".$riga['Modello']."</option>";

       }

    $sql2 = "SELECT Citta FROM concessionaria INNER JOIN automobile ON (ID_C=ID_Concessionaria) WHERE Modello = '$modelli'";

    $ris2 = mysql_query($sql2);
                    
    while ($riga2 = mysql_fetch_array($ris2)) {
 
        echo "<option>".$riga2['Citta']."</option>";

    }

 ?>
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
certo che NON utilizzare i tag per postare il codice fa passare la voglia di capire come è fatto il codice !
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
come tutti gli altri,

il codice che hai postato è abbastanza lungo, si devono individuare delle parti,
se non ci aiuti tu, chi aiuta te ?

quando componi il messaggio, in alto ci sono una fila di icone, prova a capirne l'utilizzo
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
ci sono diverse cose da cambiare, una per tutte,
tratti la marca ma selezioni la concessionaria ....
PHP:
        <select name="marca" id="marca" required>
            <option>Scegli Marca...</option>

                $query= "SELECT Nome FROM concessionaria";
se non interpreto male io

potresti prendere spunto dallo snippet di criric
https://forum.mrw.it/threads/select-dinamiche-regioni-province-comuni.36007/
giusto 3 livelli, che con poche variazioni (al limite solo i nomi), può essere usato profiquamente
 

Savi

Nuovo Utente
6 Giu 2017
12
0
1
25
Ho cambiato il codice per le mie esigenze e funziona..ma se devo far comparire i campi delle select selezionate in un altra pagina come dovrei fare?
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
modifica così,
PHP:
<form id="ricerca" method="post" action="comuni_next.php">
.....
.....
<br />
<button class="button" type="submit" value="submit">Prossimo Script</button>
</form>
le trovi in $_POST['regione'], $_POST['provincia'] e $_POST['comune']
 
  • Like
Reactions: Savi

Savi

Nuovo Utente
6 Giu 2017
12
0
1
25
Ho anche un problema nel far mostrare le immagini dal database. Le immagini le ho caricate nella tabella automobile dove c'è il campo Immagine(BLOB) in cui inserisco il nome del file.
Ho provato cosi ma non funziona:

PHP:
    $query = "SELECT Immagine FROM automobile WHERE Immagine = ID_Auto";

    $risultato = mysql_query($query) or die('Query non valida: ' . mysql_error());
    $tmp = mysql_fetch_array($risultato);

    echo $tmp['Immagine'];
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
hai provato a guardare nel log di php se c'e' un messaggio di errore ?

in ogni caso dovrebbe visualizzare il nome del file ?
 

Savi

Nuovo Utente
6 Giu 2017
12
0
1
25
L'immagine non c'è nel db. Si trova dentro una cartella..nel db c'è solo il nome
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
in ogni caso dovrebbe visualizzare il nome del file ?

Nono dovrebbe visualizzare l'immagine del campo Immagine

come è stata memorizzata l'immagine nel db ?

L'immagine non c'è nel db. Si trova dentro una cartella..nel db c'è solo il nome

quindi chiarito quanto quotato, l'istruzione
PHP:
echo $tmp['Immagine'];
restituisce solo il nome oppure il percorso ed il nome del file da visualizzare ?
ciò che restituisce è corretto ?
 
Discussioni simili
Autore Titolo Forum Risposte Data
Emix Select concatenate php sql ajax PHP 2
neo996sps [Laravel 5.1 + ajax] Popolare select concatenate Regioni, Province, Comuni PHP 1
ciccio1892 Select concatenate con Ajax inviare scelta utente tramite post insieme ad altri dati form PHP 3
F [Javascript] select list concatenate - passare valore dalla prima alla seconda Javascript 7
A select concatenate Javascript 1
N AsmSelect jQuery, Select concatenate jQuery 3
D Select concatenate impostare di default dato memorizzato Javascript 4
R select concatenate solo php PHP 12
S Select dinamiche concatenate Ajax 8
N Select concatenate Regioni-Province (con Variazione) Javascript 7
N Select concatenate Regioni-Province-Comuni (con Variazione) Javascript 14
B Select concatenate di tutte le province e comuni d'Italia aggiornato al 2007 Presenta il tuo Sito 0
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
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

Discussioni simili