Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    11

    Come visualizzare i risultati in html???

    Salve,
    ho da poco iniziato a lavorare con PHP, in realtà devo ancora iniziare ma ho intenzione di crearmi un piccolo database.
    Ho capito come interagire con i form html e come andare a leggere e scrivere su una tabella mysql.
    Il dubbio è questo, una volta letti i dati di una tabella, come riesco a farli visualizzare in una pagina html??
    Perchè una volta visualizzati i dati dovrei avere la possibilità di inserire altri dati in un form e vorrei che sia i dati visualizzati che i form stessero su una stessa pagina (pensavo ad una pagina html).
    Come posso bypassare il problema???
    Grazie Mille!!
    Ciao

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    io non ho capito la rischiesta

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    11
    Magari è un falso problema nel senso che sono io che sono incompetente e quindi mi faccio problemi che non esistono, cmq provo a spiegarmi meglio.

    Devo inserire dei record in una tabella MYSQL, ogni record ha 4 campi (articolo, descrizione, quantità, data), per far questo pensavo di utilizzare dei form html, nello specifico quindi dovrei avere 4 form, dove andare a scrivere il contenuto.

    Io vorrei che appena scrivo l’articolo (o dopo che premo un pulsante), un programmino PHP mi faccia una ricerca per capire se quell’articolo è già esistente, se esiste, mi compila in automatico il campo descrizione, altrimenti il campo descrizione rimane vuoto e quindi, a questo punto vado a finire di compilare gli altri form mancanti.

    Il mio problema è che quando eseguo una ricerca con un programma PHP (per vedere se l’articolo è presente) e stampo a video con il comando “echo” la “descrizione” relativa all’articolo richiesto, il file html dal quale provenivo, nel quale sono presenti tutti i form da compilare mi scompare, ottengo solo una pagina bianca con stampata la descrizione che cercavo.

    Spero di averti fatto capire, sicuramente approccio in maniera sbagliata il problema  potresti darmi qualche dritta??

    Grazie Mille!!!
    Ciao

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    si si ora ho capito, intanto te confondi form con i componenti della form, te hai bisogno di una sola form in cui metterai quattro componenti html

    per quanto riguarda ricordarsi i valori dei componenti di una form ti faccio un semplice esempio

    Codice PHP:
    <form action etc etc>
    primo input
    <input type="text" value="<?php echo $variabile?>" />
    </form>
    se nella variabile "$variabile" c'è qualcosa il volre dell'input-text sarà settato al suo contenuto

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    11
    In pratica, partendo dall'inizio,dovrei:
    nel file html scrivere l'articolo, dopodichè premendo un pulsante la form mi avvia il file PHP che cerca se nel database se qull'articolo è presente.
    Se è presente, dal file PHP faccio aprire un nuovo file html dove, col metodo che mi hai indicato tu, stampo a video la descrizione e compilo i restanti campi, una volta compilato il tutto premo un'altro pulsante, avvio un'altro file PHP che mi registra nella tabella tutti i campi.

    Ho capito bene??
    Scusami se ti faccio domande abbastanza banali per te ma......sono proprio alle prime armi.
    Intanto grazie ancora!!!

    Ciao!!

  6. #6
    Originariamente inviato da SimoneM
    ... nel file html ... un nuovo file html ...
    Ciao,
    file html non ce ne sono, cè un unico file php e il motore del php leggendolo e interpretandone le istruzioni genera il codice html da inviare al client.

    All'inizio è un po' difficile da capire perché venendo dai siti statici si è abituati al fatto che il codice html sia depositato dentro file con estensione html ma nei siti dinamici non è così, il codice html viene generato al volo e spedito giù.
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    11
    Ciao, penso di aver capito ed ho provato a fare alcune prove ma non riesco a capire come fare una cosa:
    Io scrivo tutto in un unico file php, inizio impostando il form articolo (che è quello che devo ricercare in mysql) e il mio bel tastino submit, a questo punto nel programma c'è la parte di ricerca nel database.
    La domanda è: come faccio a far aspettare che io abbia premuto il pulsante prima di fare la ricerca???
    Essendo tutte le istruzioni in un unico file (form con il pulsante e istruzioni per la ricerca) come faccio a far capire al programma che, una volta che mi ha visualizzato il campo da compilare deve aspettare che io prema il pulsante prima di effettuare la ricerca???

    Cercando un pò mi sembra di aver capito che dovrei cambiare la classica "form action=nome programma php" (che si usa nel caso in cui voglia lanciare un programma diverso) con la seguente:

    <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">

    però non ho ben capito come debba essere usata......
    qualcuno di voi mi potrebbe dare una mano???

    Grazie Mille!!!

  8. #8
    Ciao,
    non è tanto questione di cambiare la action perché la action indica semplicemente quale pagina richiamare e non cambia nulla se usi php_self o indichi il nome della pagina nel modo classico. Comunque l'uso di php_self è corretto.

    La vera questione è su come differenziare il primo giro dai successivi e questo problema (che comunque è molto piccolo e fra un attimo ti dico come gestirlo) nasce dal fatto che vuoi visualizzare sulla stessa pagina sia i dati prelevati dal database che il form per inserirne altri, almeno così mi è sembrato di capire dal tuo primo post.

    Quindi se vuoi creare una struttura ciclica o ricorsiva sei obbligato a far gestire entrambe le operazioni, quella di raccolta dati e quella di visualizzazione, alla stessa pagina.

    Normalmente invece non funziona così, una struttura "normale" di raccolta dati prevede una pagina_1 (php o html è indifferente) contenente il form che viene presentato vuoto e che nella action punta a pagina_2.php.

    pagina_2.php riceve i dati dal form, compie le operazioni necessarie e prepara un output html del tipo "riepilogo dei dati inseriti" oppure "grazie per aver inserito i dati".

    Eventualmente nel codice generato c'è anche un link per tornare a pagina_1 e inserire altri dati.

    Quindi in un giro normale si hanno due pagine diverse corrispondenti a due azioni diverse: la visualizzazione del form di raccolta e la visualizzazione dell'esito dell'elaborazione.

    Volendo mettere tutto assieme, volendo cioè visualizzare i dati via via inseriti nella stessa pagina del form usato per inserirli occorre necessariamente fare un'unica pagina che richiama ricorsivamente se stessa e che deve avere un meccanismo per distinguere la prima esecuzione dalle successive.

    Ci sono vari modi per farlo, session e querystring per esempio ma il più semplice è l'utilizzo di una variabile nascosta cioè di un campo

    codice:
    <input type="hidden" value="1" name="hid_1">
    da inserire nel form assieme a tutti gli altri.

    Facendo in questo modo ti basterà testare all'inizio della pagina se il campo hid_1 è valorizzato o meno per capire se sei al primo giro o no

    Codice PHP:
    <?php
    if ($_POST['hid_1'] == "1") {
    // elaborazioni eseguita solo dopo la prima volta, in questo caso è una semplice stampa
    // a video del nome digitato ma possono essere cose più complesse come query su db
    print("GIRO SUCCESSIVO
    "
    );
    print(
    "Il nome che hai inserito è " $_POST['nome']);
    }
    ?>

    <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
       <input type="hidden" value="1" name="hid_1">
       Nome:
       <input type="text" value="" name="nome">
       <input type="submit" value="invia">
    </form>
    In questo modo il form viene inviato in ogni caso ma le elaborazioni su db vengono fatte solo dal secondo giro in poi.

    Vorrei che ti soffermassi su due cose:

    - print ed echo sono praticamente identiche e quasi completamente interscambiabili, entrambe inviano stringhe di testo al client.

    - il codice racchiuso fra i tag <?php e ?> viene mandato al motore php perché venga eseguito mentre ciò che è fuori da quei tag viene inviato direttamente al client. Questo permette di mescolare liberamente codice html e php, infatti, come vedi, la prima metà del mio script è in php mentre la seconda metà è in html e, addirittura, all'interno del tag form il php viene aperto giusto per richiedere una singola operazione al php cioè la stampa con echo della variabile php_self dopodiché il php viene chiuso e si torna all'html.
    Questo si ripercuote anche, ad esempio, sui commenti, il primo infatti è un commento php mentre il secondo è html.

    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    11
    Grazie mille, sei stato davvero esaustivo, non sono riuscito ancora a provarlo ma intanto ti ringrazio per tutta la spiegazione.

    Ciao

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.