Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Far rimanere dei dati nei form

    Buon pomeriggio,

    Premessa sono al mio primo gestionale, mi è stato richiesto di utilizzare php e Mysql.
    Ho un "piccolo problemino" e spero che qualcuno mi possa aiutare :
    Ho l'esigenza di far fare una ricerca per nome nel db, ma i campi che sono stati compilati devono rimanere compilati anche dopo la ricerca.
    Io ho ben pensato di mettere una bella sessione, in cui inserire i valori compilati. Ma credo di essermi scavata la fossa da sola visto che mi ha dato qualche problema Magari c'è una via meno contorta che non conosco!!
    Posto un po di codice.. Magari mi spiego meglio.

    Pagina con i form da compilare, uno di questi ha la funzione di cercare il cliente nel db.

    codice:
    <?php
    session_start();
    include "funzioni.php";
    connessione_db();
    ECHO "SCHEDA LAVORAZIONE"."<br>";
        buttom_torna_home();
    echo "<HR></HR>";
    echo "<form method='post' action='find-cliente.php'>".
    "Numero scheda: "."<input type='text'  name='numsched'  value='$num_sched'><br>".
        "Data presa in carico "."<input type='text'  name='data'  value='$data'><br>".
        "Tecnico"."<input type='text' name='tecnico' value='$tecnico'><br>".
        "Nominativo: "."<input type='text' name='cliente' value='$cognome'>
         <input type='submit' name='cerca' value='cerca'><br>".
        "Telefono 1"."<input type='text' name='tel1' value='$tel1'><br>".
    "NOTE"."<input type='textarea' name='note' value='$note'><br>"."</FORM>";
    mysql_close();
    ?>
    La pagina di ricerca, e l'inserimento in sessione del contenuto dei form

    codice:
    <?php
    session_start();
    include "funzioni.php";
    connessione_db();
    $cliente=mysql_real_escape_string(trim($_POST['cliente']));
    $_SESSION['num']=$num=mysql_real_escape_string(trim($_POST['numsched']));
    $_SESSION['datacarico']=$datacarico=mysql_real_escape_string(trim($_POST['data']));
    $_SESSION['note']=$note=mysql_real_escape_string(trim($_POST['note']));
    $query_cerca= @mysql_query("SELECT  id_cliente, cognome, mail, codice_fiscale, p_iva, indirizzo, citta, cap, tel, cel 
            FROM cliente WHERE cognome LIKE'%$cliente%' and attivo='1'") or die ("query fallita");
            if (mysql_num_rows($query_cerca) > '0'){
                //echo "cliente trovato"."<br>";
                $num_righe = mysql_num_rows($query_cerca); 
                echo "<form method='post' action='new-work.php'>";
                    while ($row= @mysql_fetch_array ($query_cerca)){
                        $id=$row['id_cliente'];
                        $cognome1=$row['cognome'];
                        $tel1=$row['tel'];
                        $tel2=$row['cel'];
                    
                        echo $cognome1."---".$tel1."---".$tel2;
                        echo"<input type='checkbox' name='idcliente' value='$id' ><br>";
                        
                    }
                    echo "<input type='hidden' name='nascosto' value='1'><br>";
                    echo "<input type='submit' name='add' value='Aggiungi'><br>";
                echo "</form>";
            
    }
    mysql_close();
    ?>
    Pagina in cui torno, con l'id del cliente scelto cerco nel db i dati che mi servono (num tel) e i valori presi dalla sessione:

    codice:
    <?php
    session_start();
    include "funzioni.php";
    connessione_db();
    $idcliente=$_POST['idcliente'];
    $query1=@mysql_query ("SELECT  id_cliente, cognome, mail, codice_fiscale, p_iva, indirizzo, citta, cap, tel, cel 
                FROM cliente WHERE id_cliente='$idcliente'") or die('query fallita');
            if (mysql_num_rows($query1) > '0'){
                while ($row= @mysql_fetch_array ($query1)){
                    $nome=$row['cognome'];
                    $tel1=$row['tel'];
                    $tel2=$row['cel'];
                }
            }     
            echo "<form method='post' action='find-cliente.php'>".
                    "Numero scheda: "."<input type='text'  name='numsched'  value=".$_SESSION['num']."><br>".
                    "Data presa in carico "."<input type='text'  name='data'  value=".$_SESSION['datacarico']."><br>".
                    "Tecnico"."<input type='text' name='tecnico' value=".$_SESSION['login']."><br>".
                    "Ragione sociale o Nominativo: "."<input type='text' name='cliente' value='$nome'>
                        <input type='submit' name='cerca' value='cerca'><br>".
                    "Telefono 1"."<input type='text' name='tel1' value='$tel1'><br>".
                    "Telefono 2"."<input type='text' name='tel2' value='$tel2'><br>".
                    "Oggetto riparazione"."<input type='text' name='ogg' value=".$_SESSION['oggetto']."><br>".
                    "Stato Riparazione: "."<select id='level' name='stato'>
                            <option value='1' selected> Da Analizzare </option>
                            <option value = '2' > In Lavorazione </option>
                            <option value ='3'> Laboratorio esterno  </option>
                            <option value ='4'> Eseguita  </option>
                            <option value ='5'> Non Eseguibile  </option>
                            <option value ='6'> Smaltito  </option>
                            </select>"."<br>".
                    "Costo riparazione: "."<input type='text' name='costo' value=".$_SESSION['costo']."><br>".
                    "Riconsegnato"."<input type='checkbox' name='riconsegnato' value='1'><br>".
                    "Data riconsegna: "."<input type='text' nale='dataricons'><br>".
                    "NOTE"."<input type='textarea' name='note' value=".$_SESSION['note']."><br>".
                    "<input type='hidden' name='idcliente' value='$idcl'>"
                ."</FORM>";
                echo "<form method='post' action='add-new-work.php'>".
                    "<input type='submit' name='aggiungi' value='Aggiungi scheda'>".
                "</ FORM>";
    
    mysql_close();
    ?>
    Pensavo funzionasse tutto.... ma il campo delle note non va...In sessione mi va solo la prima parola (inserisco "pc rotto" e va in sessione solo "pc")...
    Sono aperta a qualsiasi suggerimento, ogni occasione è buona per imparare cose nuove e mettersi alla prova!!

  2. #2
    Ho provato a fare questo test:
    Codice PHP:
    $_POST['note'] = "pc rotto";
    $_SESSION['note']=$note=mysql_real_escape_string(trim($_POST['note']));
    print 
    $_SESSION['note']; 
    Mi stampa "pc rotto" quindi potrebbe essere che la stringa si compromette prima?

    [edit1] Le funzioni mysql_ sono deprecate e presto lo saranno anche le mysqli, ti conviene studiarti PDO per interagire con i database


    [edit2] La textarea non usa l' attributo value e come la fai credo sia sbagliata, prova cosi:
    Codice PHP:
    print "NOTE <textarea name='note'>".$_SESSION['note']."</textarea>"

    [edit3] Puoi crearti tutti i valori di sessione anche così:
    Codice PHP:
    foreach($_POST as $key => $value)
    {    
         
    $_SESSION[$key] = $value

    Risparmi un po' di codice che c' è crisi
    Ultima modifica di camionistaxcaso; 16-04-2016 a 01:21

  3. #3
    Ciao camionistaxcaso,

    Il problema della textarea l'ho risolto eliminando il value .
    Ho risparmiato davvero tanto con il ciclo foreach per inserire i dati in sessione!!
    Sull'interazione col db...ti do ragione .. e seguir� il tuo consiglio di studiare PDO.

    Grazie dei preziosi consigli!

  4. #4
    Anch' io sono alle prese con un gestionale, è già in produzione quindi lo stanno utilizzando, niente di mastodontico però chi lo usa mi rilascia feedback positivi.
    Ormai ho trovato una struttura abbastanza solida per le varie procedure form->gestione errori->inserimento nel db->esito, utilizzo anche la oop per quel poco che ne so, quindi se hai bisogno di consigli fammi un fischio

  5. #5

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.