Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    101

    La 'function' mi azzera le variabili settate.

    Ciao a tutti,
    innanzi tutto non so se il problema dipenda dal codice 'PHP' , o da quel pezzo di codice 'js' inserito, comunque non spaventatevi della lunghezza del messaggio, ma per i guru del web è semplicissimo.

    Il problema, riassumendolo, è questo:
    ho un 'form' con due campi <select ... , il primo mi carica le marche degli pneumatici, il secondo è un campo dinamico e mi carica i modelli degli pneumatici della marca scelta nel primo campo. E fin qui tutto bene.
    Il problema è che quando quando clicco sulla marca, carica bene si i modelli abbinati alla marca, ma immediatamente succedono due cose che non vorrei:
    1) Il valore della marca scelta non m rimane in vista sul primo campo select ma mi si azzera.
    2) Più importante! Mi si azzera anche la variabile '$set' diventando sconosciuta, e quindi non mi da la possibilita di andare avanti con la query 'select modello ....'.

    In poche parole è come se mi azzerasse tutte le variabili dichiarate prima del richiamo della 'funzione' -- onchange="ricarica(this)"; --

    Il codice della pagina "cerca_pneumatici.php" :
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>CMS: Pneumatici.</title>
    <meta http-equiv="Content-Type"
    content="text/html; charset=iso-8859-1" />
    <script type="text/javascript" src="./ricarica.function.js"></script>
    </head>
    <body>

    <h1>Cerca pneumatici.</h1>

    <?php
    $idset = $_GET['id'];
    if ($idset == '1') {
    $set='Auto';
    }
    if ($idset == '2'){
    $set='Moto';
    }
    if ($idset == '3') {
    $set='Quad';
    }

    echo "

    Aggiungi pneumatici nel settore: $set .</p>";

    $cnsdb = @mysql_connect('host', 'user', 'pass');
    if (!$cnsdb) {
    exit('

    Errore di connessione!</p>');
    }
    $seldb = mysql_select_db('pneumaticidb');
    if (!$seldb) {
    exit('

    Errore: database non selezionato!</p>');
    }

    $marche = @mysql_query("SELECT id, marca
    FROM marca", $cnsdb);
    if (!$marche) {
    exit('

    Lista marche non caricata!</p>');
    }
    ?>


    <form action="modello.php" method="post">



    Scegli la Marca:</p>
    <label for="marca">Marca:</label>
    <select name="idmarca" size="1" onchange="ricarica(this);">
    <option selected value="">Tutti</option>

    <?php

    while ($marca=mysql_fetch_array($marche)) {
    $idmarca=$marca['id'];
    $nomemarca=htmlspecialchars($marca['marca']);
    echo "<option value='$idmarca'>$nomemarca</option>\n";
    }
    if (isset($_GET['idmarca'])) {
    $idmarca=$_GET['idmarca'];
    } else {
    $idmarca="";
    }

    $modelli = @mysql_query("SELECT modello.id, modello
    FROM modello, settore
    WHERE idmar='$idmarca'
    AND settore='$set'
    And idset=settore.id", $cnsdb);
    if (!$modelli) {
    exit('

    Lista modelli non caricata!</p>');
    }
    ?>
    </select>



    Scegli il modello:</p>
    <label for="modello">Modello:</label>
    <select name="idmodello" size="1">
    <option selected value="">Tutti</option>
    <?php
    while ($modello=mysql_fetch_array($modelli)) {
    $idmodello=$modello['id'];
    $nomemodello=htmlspecialchars($modello['modello']);
    echo "<option value='$idmodello'>$nomemodello</option>\n";
    }
    ?>
    </select>


    <input type="submit" value="VAI" />
    </form>





    Torna a : Gestione Pneumatici.</p>

    </body>
    </html>


    E il codice '.js' esterno "ricarica.function.js"
    function ricarica(ObjectSelect) {

    var Temp=ObjectSelect.options[ObjectSelect.selectedIndex].value;

    if(Temp!="")
    window.location="./cerca_pneumatici.php?idmarca="+(Temp);

    }

    Avete delle soluzioni per questo problema che mio porto avanti da diversi giorni ?

    Grazie per ora.
    Ciao.

  2. #2
    PHP è lato server, Javascript è lato client. A meno di utilizzare le sessioni (od altre soluzioni equivalente), le richieste HTTP sono stateless. Questo significa che definendo una variabile PHP in una richiesta HTTP, la variabile non sarà disponibile/settata alla richiesta successiva.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.