Inviare variabili da menu a tendina a pagina php con post

Discussione in 'PHP' iniziata da Max61, 12 Marzo 2019.

  1. Max61

    Max61 Utente Attivo

    Registrato:
    2 Marzo 2014
    Messaggi:
    615
    Mi Piace Ricevuti:
    3
    Punteggio:
    18
    Buongiorno, ho trovato in rete uno script per prendere due parametri dal DB con un menu a tendina, ora il problema nasce nell'invio dati ad una pagina php con post, perchè nella pagina che dovrebbe recuperare il dato non so quale variabile passargli visto che è un dato composto da due variabili.
    Ho fatto alcune prove ma è sempre vuoto
    PHP:
    Seleziona l'auto
    <BODY>
    <?php
    require "Connessione.php";

    mysql_query("SET CHARACTER SET utf8");
    mysql_query("SET NAMES utf8");
    function 
    removeslashes $modelloauto )
    {
    $modelloauto implode "" explode "\\" $modelloauto ));
    return 
    stripslashes trim $modelloauto ));
    }

    $query "SELECT * FROM tblauto";
    $result mysql_query ($query);

    // qui ti prepari il codice della select
    $select_code '<FORM NAME="myForm"><SELECT NAME="mySelect" onChange="changePopup(this.selectedIndex)">';

    // qui invece il codice con tutti i dati
    $div_code '';

    // acquisisci i dati
    $count 0;
    $select_code .= "<option value =''>Seleziona</OPTION>";
    while (
    $line mysql_fetch_array ($result))
    {


       
    // aggiungi i dati che preferisci in $select_code
            
    $modelloauto=$line['modelloauto'];
            
    $modelloauto iconv('UTF-8''windows-1252'$modelloauto);
            
    $modelloautoaddslashes($line['modelloauto']);
            
    mysql_query("SET CHARACTER SET utf8");
            
    mysql_query("SET NAMES utf8");
            
       
    $select_code .= '<OPTION>' $line['modelloauto'] . ' - ' $line['targa_auto'] . '</OPTION>';

       
    // ... e qui tutti i dati del relativo cliente
       
    $div_code .= '<DIV ID="layer' $count++ . '" STYLE="display:none"></DIV>';
    }

    // chiudi la select e stampa
    $select_code .= '</SELECT></FORM>';
    echo (
    $select_code);
    echo (
    $div_code);
    ?>
    a questo punto recuperati i dati 'modelloauto e targa_auto' li vorrei inviare tramite post, ma non li invia...dove sbaglio?
    Grazie per l'aiuto
    Max61
     
  2. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    963
    Mi Piace Ricevuti:
    56
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    PHP:
    <?php
    /**********************************
    * DA INSERIRE NEL FILE UTILITY
    */
    function operation_string($params=[],$type='concat',$t_concat='_'){
        switch(
    $type){
            case 
    'concat':return join($t_concat,$params);
                    break;
            default: return 
    explode($t_concat,$params);
        }
    }
    ?>
    <!-- QUESTO É IL TEMPLATE DA GENERARE -->
    <select name="nome_select">
        <?php
            
    foreach($mysql_result as $k=>$v){
                
    ?>
                <option value="<?php echo operation_string([$v['marca'],$v['modello'])?>"><?php echo $v['marca'].' '.$v['modello'];?></option>
                <?php
            
    }
        
    ?>
    </select>
    <?php
    /******************PAGINA POST*/
        
    if($_POST['name_select']){
          
            list(
    $marca,$modello)=operation_string($_POST['name_select'],'');
          
        }

     
  3. Max61

    Max61 Utente Attivo

    Registrato:
    2 Marzo 2014
    Messaggi:
    615
    Mi Piace Ricevuti:
    3
    Punteggio:
    18
    Ciao Macus_Adi e grazie per la risposta, ti chiedo cosa vuol dire 'DA INSERIRE NEL FILE UTILITY', che devo fare un'altra pagina con questo codice? Oppure va inserito nella select del menu a tendina? Oppure...
    Grazie e scusa per la mia inesperienza
    Max61
     
  4. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    963
    Mi Piace Ricevuti:
    56
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Nella pagina dove stampi la select includi il file Connessione.php, allo stesso modo dovresti includere uno o più file utility (naturalmente se ne hai) che "altro non sono dei coltellini svizzeri di codici".... detto questo:
    File utility.php
    PHP:
    /**********************************
    * DA INSERIRE NEL FILE UTILITY
    */
    function operation_string($params=[],$type='concat',$t_concat='_'){
        switch(
    $type){
            case 
    'concat':return join($t_concat,$params);
                    break;
            default: return 
    explode($t_concat,$params);
        }
    }
    Il tuo file di select
    Codice:
    <?php
    include_once "COnnessione.php";
    include_once "utility.php"
    ?>
    <!-- QUESTO É IL TEMPLATE DA GENERARE -->
    <select name="nome_select">
        <?php
            foreach($mysql_result as $k=>$v){
                ?>
                <option value="<?php echo operation_string([$v['marca'],$v['modello'])?>"><?php echo $v['marca'].' '.$v['modello'];?></option>
                <?php
            }
        ?>
    </select>
    
    pagina post:
    PHP:
    if($_POST['name_select']){
          
            list(
    $marca,$modello)=operation_string($_POST['name_select'],'');
          
        }
     
  5. Max61

    Max61 Utente Attivo

    Registrato:
    2 Marzo 2014
    Messaggi:
    615
    Mi Piace Ricevuti:
    3
    Punteggio:
    18
    Grazie, ho provato lo script, ma la select è vuota, non recupera nessun dato dal DB, ho aggiunto una parentesi ] in questa riga altrimenti non funzionava, mica sarà per questo?
    PHP:
    <option value="<?php echo operation_string([$v['marca'],$v['modello'])?>"><?php echo $v['marca'].' '.$v['modello'];?></option>
    il codice completo
    PHP:
    include_once "Connessione.php";
    include_once "utility.php";
       
    mysql_query("SET CHARACTER SET utf8");
    mysql_query("SET NAMES utf8");
    function removeslashes ( $modelloauto )
    {
    $modelloauto = implode ( "" , explode ( "\\" , $modelloauto ));
    return stripslashes ( trim ( $modelloauto ));
    }

    $query = "SELECT * FROM tblauto";
    $result = mysql_query ($query);

    ?>
    <!-- QUESTO É IL TEMPLATE DA GENERARE -->
    <select name="nome_select">
        <?php
            
    foreach($result as $k=>$v){
       
    ?>
    <option value="<?php echo operation_string([$v['modelloauto'],$v['targa_auto']])?>"><?php echo $v['modelloauto'].' '.$v['targa_auto'];?></option>
       <?php
            
    }
        
    ?>
    </select>
     
  6. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    963
    Mi Piace Ricevuti:
    56
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Il foreach e il naming delle varibili devi allinearlo alle tue specifiche!
    PHP:
    $result=mysqli_fetch_all($query,MYSQLI_ASSOC);
     
  7. Max61

    Max61 Utente Attivo

    Registrato:
    2 Marzo 2014
    Messaggi:
    615
    Mi Piace Ricevuti:
    3
    Punteggio:
    18
    ma l'avevo già messo, almeno mi sembra che vada bene
    PHP:
    $query "SELECT * FROM tblauto";
    $result mysql_query ($query);
    mentre il codice che mi hai suggerito
    PHP:
    $result=mysqli_fetch_all($query,MYSQLI_ASSOC);
    da questo errore
    Warning: mysqli_fetch_all() expects parameter 1 to be mysqli_result, string given in C:\xampp\htdocs\prenotazioneauto\views\SelezioneAuto.php on line 149
     
Sto caricando...

Condividi questa Pagina