[PHP] Domanda stupida (credo)

  • Creatore Discussione Creatore Discussione delphorm
  • Data di inizio Data di inizio

delphorm

Nuovo Utente
8 Ago 2016
6
0
1
59
Buongiorno, è il mio primo post e sono alle prime esperienze di programmazione. (siate clementi)

Ho una pagina HTML con una form che contiene action su un file PHP.

Il file PHP esegue delle select, recupera dati e li stampa in una griglia.

E funziona :-)

Il problema è che non mi stampa la griglia con i dati nella pagina html ma in una pagina nuova .....

cosa mi sfugge?

Grazie
 
Intanto benvenuto, tutti lo stesso problema! magari fossimo fantasmi riusciremmo ad entrare nei vs pc per risolvere i problemi per poter capire quale potesse essere il problema bisognerebbe che tu postassi almeno una parte del codice in questione.
 
La action è sostanzialmente un reindirizzamento. Impostando come action del form 'pagina.php', è come se stessi dicendo al form: 'prendi i dati inseriti dall'utente e inviali alla pagina 'pagina.php'.
Dunque, una volta sottomesso il form, verrai reindirizzato su 'pagina.php' e lì verrà eseguito il codice scritto.

Forse ti aiuterà sapere che il linguaggio PHP, grosso modo, serve per rendere dinamico il linguaggio HTML, che di per sè è statico. Per cui il normale codice HTML, che scriveresti in una pagina di formato HTML, può essere generato utilizzando variabili e condizioni.

Nel tuo caso, per ottenere la stampa dei dati sulla stessa pagina del form, basta che integri in una stessa pagina (.php) il codice HTML e il codice PHP, strutturando il tutto in maniera simile alla seguente.

PHP:
<?php
// se è stato premuto il tasto submit
if(isset($_POST['submit'])) {
// stampa i dati
}
?>

<!-- Di seguito inserisci il codice HTML -->
<html>
<head>
</head>
<body>

<form action="" method="post">

<!-- altro codice -->

</form>
</body>
</html>

Spero di aver chiarito il tuo dubbio.
 
grazie decisamente si.
Però mi sorge un dubbio....
l'utilizzo di INCLUDE(nomefile.html) non implica che la pagina dove stampare sia quella?

PS non ho messo il codice perchè credevo fosse superfluo....pardon.
 
codice pagina home.html con menu che richiama elenco_pagamenti

<div class="navbar">
<div class="navbar-inner">
<div class="container"> <a href="#home" class="brand"><img src="images/logo.png" width="120" height="40" alt="Logo" /></a>
<!-- This is website logo -->

<!-- Navigation button, visible on small resolution -->
<button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <i class="icon-menu"></i> </button>
<!-- Main navigation -->
<div class="nav-collapse collapse pull-right">
<ul class="nav" id="top-navigation">
<li><a href="php/elenco_pagamenti.php">Pagamenti</a></li>
<li><a href="http://www.iss.it/cnmr/" target="_blank" >CNMR</a></li>
<li><a href="https://www.paypal.com/it/signup/account" target="_blank" >Apri un conto PayPal</a></li>
<li><a href="php/contatti.php">Contatti</a></li>
<li><a href="php/logout.php">Logout</a></li>
</ul>
</div>
</div>
</div>
</div>

quando eseguo il file elenco_pagamenti.php quindi mi stampa nella nuova pagina.
per farlo stampare in questa pagina(HOME.html) come devo fare?
(caso diverso dal precedente ovviamente)
 
No, "include" non fa altro che scriverti il contenuto della pagina che richiami sulla pagina in cui viene richiamato.

Tipicamente viene utilizzato nel caso il codice in questione sia identico in svariate pagine, per esempio header, footer, file di configurazione della connessione al database, file contenente funzioni e quant'altro.
Tutto ciò per snellire il codice.
 
  • Like
Reactions: delphorm
Non puoi. Semplicemente perché il file è in formato HTML e per stampare dei dati attraverso del codice PHP hai bisogno di un file .php.

In ogni caso, devi cambiare innanzitutto l'estensione, successivamente, nella pagina che ora si chiamerà "home.php", devi scrivere il codice che ti permette di recuperare i dati e stamparli. La logica è quella di prima, ossia ti assicuri che l'utente sia arrivato lì dopo aver fatto il submit del form e, dopo essertene accertato, stampi i dati ed eventualmente il resto della pagina home.
 
perfetto capito, provato, funziona.
Però ora stampa ad inizio pagina.
Non sotto la riga di input....
devo creare qualcosa prima per posizionare l'ouptut?
Perdonami se ti stresso....ma vorrei chiudere il percorso logico.
 
Basta posizionare il codice che ti stampa i dati nel punto esatto in cui vuoi che venga eseguito. Per cui, in questo caso, sotto il codice della tua 'riga di input'.
 

Discussioni simili