Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    33

    problema Selezione Dinamica da Database PHP e AJAX

    Vorrei che la scelta del MODELLO sia figlia della scelta MARCA

    Il db è così strutturato:
    codice:
    CREATE TABLE `it_trade` (
      `ID` decimal(18,0) NOT NULL,
      `Manufacturer` varchar(80) DEFAULT NULL,
      `ModelNo` varchar(80) DEFAULT NULL,
      `Suffix` varchar(80) DEFAULT NULL,
      `Display` varchar(80) DEFAULT NULL,
      `Lamp_Qty` varchar(50) DEFAULT NULL,
      `Manupartcode` varchar(80) DEFAULT NULL,
      `Lamp_Supply` varchar(50) DEFAULT NULL,
      `Lamphours` varchar(50) DEFAULT NULL,
      `Wattage` varchar(50) DEFAULT NULL,
      `LampType` varchar(80) DEFAULT NULL,
      `Trade_Price` decimal(10,4) DEFAULT NULL,
      `Available_Stock` double DEFAULT NULL,
      `QTY_ON_ORDER` double DEFAULT NULL,
      `Typical_Leadtime` varchar(50) DEFAULT NULL,
      `Canx` varchar(80) DEFAULT NULL,
      PRIMARY KEY (`ID`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    
    
    ### data of table `it_trade` ###
    
    insert into `it_trade` values ('130', '3D PERCEPTION', 'X 15e', '  Lamp', 'Projector', '1', ' ', '1', '2000', '250', 'UHP', '400.1300', '5', '4', '10', ' ');
    insert into `it_trade` values ('131', '3D PERCEPTION', 'X 15i', '  Lamp', 'Projector', '1', ' ', '1', '2000', '250', 'UHP', '400.1300', '5', '4', '10', ' ');
    questo è invece lo script che uso al momento:
    codice:
    <script type="text/javascript">
    var xmlhttp;
    
    function mostraInfo(str)
    {
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
    {
    alert ("Browser does not support HTTP Request");
    return;
    }
    var url="mostra_utenti.php";
    url=url+"?q="+str;
    url=url+"&sid="+Math.random();
    xmlhttp.onreadystatechange=stateChanged;
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
    }
    
    function stateChanged()
    {
    if (xmlhttp.readyState==4)
    {
    document.getElementById("info").innerHTML=xmlhttp.responseText;
    }
    }
    
    function GetXmlHttpObject()
    {
    if (window.XMLHttpRequest)
    {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    return new XMLHttpRequest();
    }
    if (window.ActiveXObject)
    {
    // code for IE6, IE5
    return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
    }
    </script>
    
    <form>
    Seleziona Marca e Modello:
    <select name="users" onChange="mostraInfo(this.value)">
    <?php
    //Seleziono quelli che sono i dipendenti
    $connessione = mysql_connect('xxx', 'xxx', 'xxx'); 
    mysql_select_db("JL_Partners", $connessione);
    
    
    $query = "SELECT * FROM `IT_Trade` ORDER BY Manufacturer ASC";
    $result = mysql_query($query);
    
    while($riga = mysql_fetch_array($result)){
    echo "<option value='$riga[ID]'>$riga[Manufacturer] -- Modello: $riga[ModelNo]</option>";
    }
    
    
    ?>
    </select>
    </form>
    
    
    <div id="info"></div>
    e questo per visualizzare il risultato:
    codice:
    <?php
    $q=$_GET["q"];
    
    $con = mysql_connect('xxx', 'xxx', 'xxx');
    mysql_select_db("JL_Partners", $con);
    
    $sql="SELECT * FROM IT_Trade WHERE id = '".$q."'";
    
    $result = mysql_query($sql);
    
    echo "<table border='1'>
    <tr>
    <th>Marca</th>
    <th>Modello</th>
    <th>Tipologia</th>
    <th>Watt</th>
    <th>Durata</th>
    <th>Prezzo</th>
    
    </tr>";
    
    
    
    while($row = mysql_fetch_array($result))
    {
    echo "<tr>";
    echo "<td>" . $row['Manufacturer'] . "</td>";
    echo "<td>" . $row['ModelNo'] . "</td>";
    echo "<td>" . $row['Suffix'] . "</td>";
    echo "<td>" . $row['Wattage'] . "</td>";
    echo "<td>Ore " . $row['Lamphours'] . "</td>";
    //calcolo per l'aumento del prezzo al pubblico
    $num1=20;
    $num2=100;
    {$x = (($num1 / $num2)* $row['Trade_Price']);}
    {$y = ($row['Trade_Price'] + $x)+10; }
    //fine calcolo
    echo "<td>Euro " . round($y, 2)  . "</td>"; //visualizzazione risultato
    echo "</tr>";
    }
    echo "</table>";
    come dicevo all'inizio vorrei che la scelta del MODELLO sia figlia della prima scelta cioè la MARCA. Al momento sono riuscito a fare un'unica scelta solo che non è comoda.
    Mi date una mano mi sono proprio incastrato.
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    33
    non c'è nessuno che mi da una mano?? Non ho trovato niente di simile....ho fatto mille prove ma...

  3. #3
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Beh... intanto devi creare una form con il campo marca e modello oltre che id.

    Poi crei un javascript che tramite ajax ti popola modello sulla base di marca (puoi duplicare e modificare quello che hai già) con un onchange su marca

    con un onchange su modello richiami il tuo script ajax

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    33
    Ciao, grazie per la risposta!!! Ti chiedo un favore, visto che mi sembri abbastanza ferrato sull'argomento, potresti scrivermelo e dirmi dove inserire le modifiche??....non sono molto pratico...
    grazie infinite anticipatamente....

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    33
    ...sto provando di tutto...non ci riesco...cercando in rete trovo solo esempi con db configurati doversamente....purtroppo il db non è mio...e devo prendere i dati cosi come me li danno...

    qualcuno che mi illumini??

    Grazie 1000!

  6. #6
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    scusami, ma non è un lavoro proprio velocissimo.

    Ti consiglierei, specialmente se non sei proprio un esperto, di utilizzare un framework javascript che ti potrebbe semplificare la scrittura dello script.
    Io uso (o almeno ci provo) mootools che rende ajax abbastanza agevole

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    33
    ma non c'è proprio nessuno che sa indicarmi la strada??? sto impazzendo...

  8. #8
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    fondamentalmente vorresti un effetto a cascata tipo regione-->provincia-->comune ... o no?
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    33
    Si esatto... al momento sono riuscito a mettere tutto in un'unica "tendina"...solo che non è proprio pratica... perchè ci sono troppi modelli per marca!

    in ogni caso vorrei che si potesse scegliere prima la Marca e poi il Modello, e come risultato ottenere il prezzo.

    Grazie anticipatamente.

  10. #10
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    spero che tu prima di impazzire e sentirti abbandonato a te stesso abbia fatto un minimo di ricerca del tuo problema nel forum, perchè

    1) il tema è stato non dico trattato, ma MACINATO E RAFFINATO piu volte
    2) il form di ricerca funziona perfettamente
    3) è stata fatta appositamente una pillola su questo argomento

    ecco il link

    http://forum.html.it/forum/showthrea...readid=1291058

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.