Visualizzazione dei risultati da 1 a 3 su 3

Discussione: da javascript a PHP?

  1. #1

    da javascript a PHP?

    ciao a tutti, ho due select di cui la prima popola la seconda. Prendo i dati di entrambe in dinamico così che ho una serie di marche in una e i modelli corrispondenti nell'altra. Il problema stà sulla select dei modelli perchè invece che selezionarmi solo quelli della marca specificata si posiziona sul primo della lista prescelta ma nella select sono presenti tutti. Più o meno lo script mi sembra abbastanza corretto tranne che vorrei fare una select nella query con un WHERE tra le clausole e vorrei prendere il valore che mi da nell' Onchange del javascript che ho usato per le select. Posto il codice per essere più chiaro

    questa è la parte delle funzioni

    codice:
    <script language="JavaScript" type="text/javascript">
    <!--
    function Aggiornamodello_scelto(unValore) {
     var p   = unValore.indexOf("-"); 
     var key = unValore.substring(p+1); 
     for (f=0; f<document.getElementById('modello_scelto').length; f++) { 
      if (key==document.getElementById('modello_scelto').options[f].value) { 
       document.getElementById('modello_scelto').selectedIndex=f; 
       break; 
      } 
     } 
    }
    
    function Aggiornamarca() {
    document.getElementById('marca').selectedIndex=0;
    this.options [this.selectedIndex].value;
    
    <?
    mysql_select_db($database_AF_Group, $AF_Group);
    $query_vetture = "SELECT * FROM vettura";
    $vetture = mysql_query($query_vetture, $AF_Group) or die(mysql_error());
    ?>
    } 
    
    //-->
    </script>
    queste sono le due select

    codice:
    <select name="marca" onchange="Aggiornamodello_scelto(this.value)" class="textbox" id="marca"> 
                                                  <option value="1">nessuno</option>
                                                  <?php
    do {  
    ?>
                                                  <option value="<?php echo $row_marca['ID_vettura']?>"><?php echo $row_marca['marca']?></option>
                                                  <?php
    } while ($row_marca = mysql_fetch_assoc($marca));
      $rows = mysql_num_rows($marca);
      if($rows > 0) {
          mysql_data_seek($marca, 0);
    	  $row_marca = mysql_fetch_assoc($marca);
      }
    ?>
                                                </select>                                              </td>
                                                <td><select   name="modello_scelto" onchange="Aggiornamarca()" class="textbox" id="modello_scelto">
                                                  <option value="23">nessuno</option>
                                                  <?php
    do {  
    ?>
                                                  <option value="<?php echo $row_vetture['ID_vettura']?>"><?php echo $row_vetture['modello']?></option>
                                                  <?php
    } while ($row_vetture = mysql_fetch_assoc($vetture));
      $rows = mysql_num_rows($vetture);
      if($rows > 0) {
          mysql_data_seek($vetture, 0);
    	  $row_vetture = mysql_fetch_assoc($vetture);
      }
    ?>
                                                </select>
    forse mi basta inserire nella parte della funzione una cosa del tipo
    codice:
    $query_vetture = "SELECT * FROM vettura WHERE marca = 'recuperare il valore dall'onchange della select marche'";
    Forse sono stato un po' disordinato nell'esposizione, comunque confido nel vostro buon cuore.

  2. #2
    riformulo la domanda in maniera più semplice: ho due select entrambe dinamiche (cioè recuperano i valori da un db). Io vorrei che la selezione della prima mi popoli automaticamente la seconda senza ricaricare la pagina; è una cosa da fare in PHP o è semplice Javascript? Quindi aspetto vostre notizie o mi conviene postare nella sezione javascript? Ho visto diversi thread nella sezione javascript ma che usino il dinamico non mi è sembrato. Vi ringrazio e attendo fiducioso i vostri preziosi consigli.

  3. #3
    Ciao,
    se vuoi far interagire Php e Javascript senza refresh della pagina hai due scelte

    - Eseguire le query e far creare il javascript a PHP (array o oggetti) tutto all'inizio, e poi utilizzare le select per attingere dal javascript creato

    - usare l'oggetto XMLHTTP per far fare delle request a PHP (sostanzialmente potrai usare solo Explorer 5+ e Mozilla/Firefox)

    La prima soluzione è la più comune, ma è fastidiosa quando i dati da rendere in javascript sono moltissimi (la pagina html diventa pesante), in questo caso meglio un refresh.

    la seconda è quella usata da google

    Qui possiamo spiegarti come creare javascript con PHP, ma in fondo si trtata di fare l'echo di una stringa.

    Nel forum scripting ti possono dire come attingere al javascript con le select
    per favore NIENTE PVT TECNICI da sconosciuti

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.