Visualizzazione risultati 1 fino 6 di 6

Discussione: Stampare form da form

  1. #1
    Guest

    Predefinito Stampare form da form

    Salve a tutti...
    Ho già rotto le scatole a mezzo web con questo mio sito... premetto che sono una principiante di PHP anche abbastanza lenta a capire e spesso e volentieri commetto errori stupidi di codice...
    Allora, io ho due pagine .php collegate fra loro da un form (che mi serve per selezionare) che genera un altro form... solo che ho problema con il secondo form che mi dà i risultati presi da un database testuale...
    Premetto che non posso utilizzare nessun array e non posso generarne alcuni...

    pagina1.php quella che seleziona (ovviamente è collegata a index.php che non mi dà alcun problema)

    Codice HTML:
    <form action="pagina2.php" method="post">
    <table align="center">
    <tr>
    <td colspan="2" align="center" valign="middle">
    <select name="dati_rubrica">
      <option selected="selected">---</option>
      <option value="mestiere">Job</option>
      <option value="cognome">Surname</option>
    </select></td>
    </tr>
    <tr>
    <td>Job:</td>
    <td> <input type="text" name="mestiere" size="20" /></td>
    </tr>
    <tr>
      <td>Surname:</td>
      <td> <input type="text" name="cognome" size="20" /></td>
    </tr>
    
    <td colspan="2" align="center" valign="middle">
       
       <input name="submit" type="submit" value="Submit" />
       OR 
       <input type="reset" value="Reset"/></td>
    </tr>
    </table>
     
      
    </form>
    Che risulta così... (almeno con HTML non ci sono problemi )



    pagina2.php quella che mi restituisce il form...

    Codice PHP:
    <?
    $cognome
    =$_POST['cognome'];
    $mestiere=$_POST['mestiere'];
    define("DATI_RUBRICA","../DATA/dati_rubrica.txt");
    $dati_rubrica = fopen (DATI_RUBRICA,"r");
    while ( !
    feof ($dati_rubrica) ) {
    $data= fgets($dati_rubrica,5000);
    if (
    preg_match ( "!§cognome:".$_POST['cognome']."!", $data) || preg_match ("!§mestiere:".$_POST['mestiere']."!", $data)) { // "!espressione!" espressione regolare case sensitive
    print '<form method="POST" action="#"><table align="center">';
    print
    "<td>"
    print '<input type="radio" value="<?php echo str_replace ( "§", "<br>", $data); ?>">'; // Ovviamente mi dà errore qui e non va oltre
    print "</td>";
    print
    "</table>"
    print "</form>";
    }
    // endif
    } //endwhile

    fclose ($dati_rubrica);

    ?>
    Ho provato ad entrare ed uscire da php, ma ovviamente mi genera solo un form vuoto pieno di radiobuttons... so che sbaglio alla riga
    Codice PHP:
    print '<input type="radio" value="<?php echo str_replace ( "§", "<br>", $data); ?>">';
    ...
    Il secondo form mi dovrebbe restuire:
    * radiobutton nome:Pinco cognome:Pallo num:quello che è mestiere:idem

    Qualcosa tipo questo:


    Lo so che per come è scritto mi generà tanti form, ma pazienza...

    Mi potreste dare una mano? Mi dà come errore (e non lo sto neanche a commentare):
    Codice:
    Parse error: syntax error, unexpected T_PRINT
    ...
    Devo consegnare questo progetto lunedì e onestamente con tutto il sito pronto e una sola cosa che non funziona...
    Il database ha la seguente formattazione (che si può trovare anche qui su altervista):
    Codice:
    §nome:Marta§cognome:De Luca§num:0334/987654§mestiere:cardiologo
    §nome:Pinco§cognome:Pallo§num:3407778899§mestiere:dentista
    §nome:Francesco§cognome:Garibaldi§num:0132/456888§mestiere:tennista
    §nome:Giuseppe§cognome:Garibaldi§num:0123/456789§mestiere:altro
    §nome:Guglielmino§cognome:De Luca§num:9872228899§mestiere:cardiologo
    §nome:Filippo§cognome:Micone§num:RISERVATO§mestiere:dentista
    §nome:Gesualda§cognome:Micone§num:NON PERVENUTO§mestiere:tennista
    §nome:Gesualda§cognome:Pallo§num:NON PERVENUTO§mestiere:altro

    Secondo me, il mezzo web di cui parlavo sta anche qui e dirà: "Questa è peggio della peste!"
    Speriamo bene! Aiutate una poveretta che ormai da ha gli occhi a forma di codice e non distingue più un appendicino da una parentesi acuta!
    Ultima modifica di msm4rvn : 31-10-2008 alle ore 10.20.47

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Cambia questo:

    Citazione Originalmente inviato da msm4rvn Visualizza messaggio
    Codice PHP:
    print '<input type="radio" value="<?php echo str_replace ( "§", "<br>", $data); ?>">'; // Ovviamente mi dà errore qui e non va oltre
    In questo:

    Codice PHP:
    print '<input type="radio" value="'.str_replace ( "§", "<br>", $data).'">'; // Ovviamente mi dà errore qui e non va oltre


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Guest

    Predefinito

    Come ti fa notare saitfainder non puoi aprire tag php due volte di seguito...sei sotto un print e non ha nemmenso senso.

  4. #4
    Guest

    Predefinito

    La cosa che mi fa pensare è che mezzo web non ha saputo risolvergli il problema. Per curiosità: dove hai chiesto? xD

  5. #5
    Guest

    Predefinito

    Ehm... che figurina... non avevo riflettuto che stavo aprendo un altro tag...

    Ho fatto ancora testing e mi dà sempre lo stesso errore di parsing...
    Dov'è l'errore? Nel frattempo, esco dal lavoro e auguro buon Halloween a tutti...

    EDIT:
    Citazione Originalmente inviato da Xenom89 Visualizza messaggio
    La cosa che mi fa pensare è che mezzo web non ha saputo risolvergli il problema. Per curiosità: dove hai chiesto? xD
    Si dice il peccato, ma non il peccatore
    Ultima modifica di debug : 31-10-2008 alle ore 17.47.08

  6. #6
    Guest

    Predefinito

    Visto che oggi ho avuto un parziale colpo di fortuna, ho tempo fino a dopodomani per ripresentare il progetto... solo che ho doppio un piccolo problema di ignoranza...
    Allora il form della pagina2.php non mi seleziona e mi stampa tutti i dati del file.txt che mi funge da database e ovviamente la pagina3.php (l'ultima quella che stampa il form) mi stampa un form per ogni dato che estrae (fortuna che si tratta di sei righe a malapena...)...
    Allora, il codice è questo...

    pagina2.php form che seleziona rimane come sopra...

    Pagina3.php riveduta e non penso corretta qui di seguito...

    Codice:
      <?
    $cognome=$_POST['cognome'];
    $mestiere=$_POST['mestiere'];
    define("DATI_RUBRICA","../DATA/dati_rubrica.txt");
     $dati_rubrica = fopen (DATI_RUBRICA,"r");
    while ( !feof ($dati_rubrica) ) { 
      $data= fgets($dati_rubrica,5000); 
      if (preg_match ( "!§cognome:".$_POST['cognome']."!", $data) || preg_match ("!§mestiere:".$_POST['mestiere']."!", $data)) { 
      ?>
      <form method="POST" action="#"><table align="center">
         <td valign="top">
    	 <input type="radio" value="cognome" />
    	<?
         echo str_replace ( "§", "&nbsp;", $data);
        ?>
    	 </td>
        </table>
       </form>
       <?
    	 } // endif
    } //endwhile
    
    fclose ($dati_rubrica);
    
    ?>

    1. Perché il form della prima pagina non seleziona?
    2. Come ovviare al disagio che mi stampi tremila form e tabelle per ogni dato?


    Si accettano consigli e critiche... perché alla seconda io non so come rispondere (è già tanto che il cricetino del mio cervello sia arrivato a controllare ogni punto e virgola)

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •