Inviare form alla stessa pagina

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Sto cercando un modo tipo i blog che hanno un form nella pagina e una volta inviato lo stampa nella pagina stessa
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
puoi usare Ajax
esempio di chiamata Ajax con Jquery
PHP:
<!DOCTYPE html>
<html>
    <head>
        <title>Ajax</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    </head>
    <body>    
        <form onsubmit="return false">
            <input type="text" id="nome" name="nome"/>
            <input type="button" id="invia" name="invia" value="Invia"/>
        </form>
        <div id="risultato"></div>
        <script type="text/javascript">
            $("#invia").click(function(){                
                $.ajax({    
                    type: "POST",  
                    url: "dati.php", 
                    data: "nome=" + $("#nome").val(),
                    success: function(response){
                        $("#risultato").html(response);
                    }
                }); 
            });          
        </script>
    </body>
</html>
pagina che elabora i dati
PHP:
<?php
echo "Ciao " . $_POST['nome'];
?>
Tutto quello che mandi in output in dati.php verra stampato nel div indicato
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Ciao,
puoi usare Ajax
esempio di chiamata Ajax con Jquery
PHP:
<!DOCTYPE html>
<html>
    <head>
        <title>Ajax</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    </head>
    <body>    
        <form onsubmit="return false">
            <input type="text" id="nome" name="nome"/>
            <input type="button" id="invia" name="invia" value="Invia"/>
        </form>
        <div id="risultato"></div>
        <script type="text/javascript">
            $("#invia").click(function(){                
                $.ajax({    
                    type: "POST",  
                    url: "dati.php", 
                    data: "nome=" + $("#nome").val(),
                    success: function(response){
                        $("#risultato").html(response);
                    }
                }); 
            });          
        </script>
    </body>
</html>
pagina che elabora i dati
PHP:
<?php
echo "Ciao " . $_POST['nome'];
?>
Tutto quello che mandi in output in dati.php verra stampato nel div indicato

Provo, io però non ho ancora capito jQuery, è forse un file-libreria completa da installare e che poi si richiamano i codici con i plugin?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Non è da installare e non è necessario usare i plugin
è un modo diverso per scrivere codice javascript
le funzioni che si richiamano dal "file-libreria" sono funzioni javascript
scrivere
$("#elemento").val();
equivale a
document.getElementById('elemento').value;

per la chiamata ajax che ti ho postato in javascript servono decine e decine di righe di codice
nel file di jquery ci sono quelle righe di codice, scritte molto bene, richiamabili con dei semplici comandi
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Non è da installare e non è necessario usare i plugin
è un modo diverso per scrivere codice javascript
le funzioni che si richiamano dal "file-libreria" sono funzioni javascript
scrivere
$("#elemento").val();
equivale a
document.getElementById('elemento').value;

per la chiamata ajax che ti ho postato in javascript servono decine e decine di righe di codice
nel file di jquery ci sono quelle righe di codice, scritte molto bene, richiamabili con dei semplici comandi
L'ho provato, ma stampa "Ciao" anche se nel form scrivo un altro nome
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Ciao,
puoi usare Ajax
esempio di chiamata Ajax con Jquery
PHP:
<!DOCTYPE html>
<html>
    <head>
        <title>Ajax</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    </head>
    <body>    
        <form onsubmit="return false">
            <input type="text" id="nome" name="nome"/>
            <input type="button" id="invia" name="invia" value="Invia"/>
        </form>
        <div id="risultato"></div>
        <script type="text/javascript">
            $("#invia").click(function(){                
                $.ajax({    
                    type: "POST",  
                    url: "dati.php", 
                    data: "nome=" + $("#nome").val(),
                    success: function(response){
                        $("#risultato").html(response);
                    }
                }); 
            });          
        </script>
    </body>
</html>
pagina che elabora i dati
PHP:
<?php
echo "Ciao " . $_POST['nome'];
?>
Tutto quello che mandi in output in dati.php verra stampato nel div indicato

Non so come fa a funzionarti, io ho sostituito questo
PHP:
url: "dati.php",
con la pagina che contiene il form e cioè
PHP:
url: "paginastessa.php",
ma non funziona
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
devono essere due pagine separate
una che contiene il form , il richiamo della libreria e la funzione javascript

e l'altra in php ( quella che richiami da url: "dati.php", ) che contiene solo

PHP:
echo "Ciao" . $_POST['nome'];

la pagina php viene richiamata all'interno del div #risultato e mostra il risultato

se copi e incolli quello che ti avevo postato in due pagine e quella php la chiami dati richiamando la pagina HTML funziona
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
devono essere due pagine separate
una che contiene il form , il richiamo della libreria e la funzione javascript

e l'altra in php ( quella che richiami da url: "dati.php", ) che contiene solo

PHP:
echo "Ciao" . $_POST['nome'];

la pagina php viene richiamata all'interno del div #risultato e mostra il risultato

se copi e incolli quello che ti avevo postato in due pagine e quella php la chiami dati richiamando la pagina HTML funziona
Non si può fare in modo che metto tutti codici nella pagina stessa? Io ho già un form con 2 pagine, ma volevo farlo con una sola pagina
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
non con ajax

puoi inviare il form alla stessa pagina ricaricandola
PHP:
<form action='<?php echo $_SERVER['PHP_SELF'] ?>' method='POST'>
e poi lavori direttamente sui dati del post se sono settati
PHP:
if(isset($_POST['nome'] && !empty($_POST['nome'])) {
    echo "Ciao " . $_POST['nome'];
}
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
non con ajax

puoi inviare il form alla stessa pagina ricaricandola
PHP:
<form action='<?php echo $_SERVER['PHP_SELF'] ?>' method='POST'>
e poi lavori direttamente sui dati del post se sono settati
PHP:
if(isset($_POST['nome'] && !empty($_POST['nome'])) {
    echo "Ciao " . $_POST['nome'];
}

Non stampa, dove sbaglio?

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

         <input type="text" id="nome" name="nome"/>
            
            <input type="button" id="invia" name="invia" value="Invia"/> 
        </form> 
        <div id="risultato"></div> 
        <script type="text/javascript"> 
            $("#invia").click(function(){                 
                $.ajax({     
                    type: "POST",   
                    url: "stessapagina.php",  
                    data: "nome=" + $("#nome").val(), 
                    success: function(response){ 
                        $("#risultato").html(response); 
                    } 
                });  
            });           
        </script>
         
        <?php 
echo "Ciao" . $_POST['nome']; 
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
a parte ajax, che non so a che ti serva, prova così
PHP:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" >
<input type="text" id="nome" name="nome"/>
<input type="button" id="invia" name="invia" value="Invia"/> 
</form>
<?php
if(isset($_POST['invia'])){
	if(empety(trim($_POST['nome'])){
		echo "Ciao gnocco non hai messo il nome";
	}else{
		echo "Ciao" . $_POST['nome'];
	}
}
?>
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao
a parte ajax, che non so a che ti serva, prova così
PHP:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" >
<input type="text" id="nome" name="nome"/>
<input type="button" id="invia" name="invia" value="Invia"/> 
</form>
<?php
if(isset($_POST['invia'])){
	if(empety(trim($_POST['nome'])){
		echo "Ciao gnocco non hai messo il nome";
	}else{
		echo "Ciao" . $_POST['nome'];
	}
}
?>
Non stampa niente, mancava una parentesi if(empety(trim($_POST['nome'])))
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
avevo tatto il copy/paste e on mi ero accorto che hai usato button al posto di submit (e ho tolto l'empty)

PHP:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" >
<input type="text" id="nome" name="nome"/>
<input type="submit" id="invia" name="invia" value="Invia"/> 
</form>
<?php
if(isset($_POST['invia'])){
    if(trim($_POST['nome'])== ""){
        echo "Ciao gnocco non hai messo il nome";
    }else{
        echo "Ciao " . $_POST['nome'];
    }
}
?>
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao
avevo tatto il copy/paste e on mi ero accorto che hai usato button al posto di submit (e ho tolto l'empty)

PHP:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" >
<input type="text" id="nome" name="nome"/>
<input type="submit" id="invia" name="invia" value="Invia"/> 
</form>
<?php
if(isset($_POST['invia'])){
    if(trim($_POST['nome'])== ""){
        echo "Ciao gnocco non hai messo il nome";
    }else{
        echo "Ciao " . $_POST['nome'];
    }
}
?>
Ora funziona, sto cercando di applicare il tuo principio al mio form ma non mi stampa

PHP:
<form method="post" name="mioform1" id="mioF" action="<?php echo $_SERVER['PHP_SELF'];?>" onkeyup="highlight(event)" onsubmit="return (nomeCampo() &amp;&amp; messaggioCampo() &amp;&amp; validatoreCampo());">
<!-- Prende la data-ora browser del visitatore da script.js WebDate_Scrivimi() -->
 <input type="hidden" id="hdn_data_locale" name="WebDate_Scrivimi" />
  <script type="text/javascript">WebDate_Scrivimi();</script>   
	
	       <fieldset id="contenuto1"> 
             <div class="linea1">
				 <label class="nomi1Scriv">Tuo NOME<span class="asterisco1">&nbsp;*</span></label>
          <input type="text" name="nome" class="campi1" value="<?php echo($_SESSION['nome'])?>" onkeyup="contaNome(); nomeCampo(); parolaNo()" onblur="nomeCampo(); parolaNo(); this.value=this.value.replace(/[\s]*/,'')" /> <!-- E' il Trim di js (onblur rimuove subito in modo visibile spazi prima e alla fine)  -->
           &nbsp;&nbsp;&nbsp;&nbsp;<img src="faccine/cxonfuso.gif" alt="Confuso" title="Confuso" onclick="document.forms.mioform1.messaggio.value+='CONFUSO';focus()" style="cursor:pointer" />
						&nbsp;&nbsp;<img src="faccine/ixmpossibile.gif" alt="Impossibile" title="Impossibile" onclick="document.forms.mioform1.messaggio.value+='IMPOSSIBILE';focus()" style="cursor:pointer" />
					  &nbsp;<img src="faccine/txestardo.gif" alt="Testardo" title="Testardo" onclick="document.forms.mioform1.messaggio.value+='TESTARDO';focus()" style="cursor:pointer" />
                  <div class="N">  
           <div id="nome"></div><div id="contaNome"></div><div id="nomeCampo"></div>
             </div>
                 </div>
				    <div class="linea1">
           <label class="nomi1">Tua CITT&Agrave;</label>
       <input type="text" name="citta" class="campi1" value="<?php echo($_SESSION['citta'])?>" onkeyup="contaCitta(); parolaNo()" onblur="parolaNo(); this.value=this.value.replace(/[\s]*/,'')" />
					&nbsp;&nbsp;&nbsp;&nbsp;<img src="faccine/pxiange.gif" alt="Piange" title="Piange" onclick="document.forms.mioform1.messaggio.value+='PIANGE';focus()" style="cursor:pointer" />
					&nbsp;&nbsp;<img src="faccine/bxacio.gif" alt="Bacio" title="Bacio" onclick="document.forms.mioform1.messaggio.value+='BACIO';focus()" style="cursor:pointer" />
          &nbsp;&nbsp;<img src="faccine/fxelice.gif" alt="Felice" title="Felice" onclick="document.forms.mioform1.messaggio.value+='FELICE';focus()" style="cursor:pointer" />
          <div class="N"> 
          <div id="citta"></div><div id="contaCitta"></div>
         </div>
           </div>
				  <div class="linea1">
			 <label class="nomi1">Tua EMAIL</label>
           <input type="text" name="suoemail" class="campi1" value="<?php echo($_SESSION['suoemail'])?>" onkeyup="contaUser(this); contaEmail(); validaMail()" onblur="validaMail(); this.value=ignoreSpaces(this.value)" />   <!-- Rimuove tutti gli spazi (attacca le parole) -->
				&nbsp;&nbsp;&nbsp;&nbsp;<img src="faccine/rxide.gif" alt="Ride" title="Ride" onclick="document.forms.mioform1.messaggio.value+='RIDE';focus()" style="cursor:pointer" />
           &nbsp;&nbsp;<img src="faccine/oxcchiolino.gif" alt="Occhiolino" title="Occhiolino" onclick="document.forms.mioform1.messaggio.value+='OCCHIOLINO';focus()" style="cursor:pointer" />
					&nbsp;&nbsp;<img src="faccine/cxiao.gif" alt="Ciao" title="Ciao" onclick="document.forms.mioform1.messaggio.value+='CIAO';focus()" style="cursor:pointer" />
            <div class="N"> 
           <div id="contaUser"></div><div id="contaEmail"></div><div id="validaMail"></div>
                  </div>
				 </div>
		<div class="linea1">
			<div class="formattazione1">
			
      <div id="bottoneG">
      <a href="javascript:insert_tag('G');" title="Grossetto"><span style="font-weight: bold;">G</span></a> 
      </div>
      <div id="bottoneC"> 
      <a href="javascript:insert_tag('C');" title="Corsivo"><span style="font-size: 16px; font-style: italic;">C</span></a>	
      </div>
      <div id="bottoneS"> 
      <a href="javascript:insert_tag('S');" title="Sottolineato"><span style="text-decoration: underline;">S</span></a>
      </div> 
      
&nbsp;&nbsp;<select class="campoColori1" name="colori" onchange="insert_tag('COLOR',this.options[this.selectedIndex].value);this.selectedIndex=0;">
<option>Color</option> 
<option class="cayenne-bg" value="cayenne">Cayenne</option>
<option class="rosso-bg" value="rosso">Rosso</option>
<option class="verde-bg" value="verde">Verde</option>
<option class="grigio-bg" value="grigio">Grigio</option>
 </select>
      </div> <!-- formattazione1 -->
			</div>  <!-- linea1 -->
  
	  <div id="contSX">
		<span class="testoMess">Testo</span><span class="asterisco1">&nbsp;*</span>
		<br />
		 <br />
  <div id="charCount">Rimanenti</div><span class="formattaNumero"><div id="Contatore">1000</div></span>
<div id="charCount1">caratteri</div>
</div>

<div id="messaggio"></div><div id="messaggioCampo"></div>

<textarea name="messaggio" id="txtScrivimi1" cols="0" rows="0" onkeyup="conta(this); messaggioCampo(); parolaNo()" onblur="messaggioCampo(); parolaNo(); this.value=this.value.replace(/[\s]*/,'')"><?php echo($_SESSION['messaggio'])?></textarea>

<div id="contDXScrivimi1">	  
   <img src="faccine/pxaura.gif" alt="Paura" title="Paura" onclick="document.forms.mioform1.messaggio.value+='PAURA';focus()" style="cursor:pointer" />
   </div>
   
	 <div id="footer-basso">
	
	 <div id="footer-sxScrivimi1">
    <span class="campiObb">Campi obbligatori</span><span class="asterisco1">&nbsp;*</span>
					</div>
					<div id="footer-ctScrivimi1">
           	 <button type="submit" name="send" id="submit" class="manina-guest">Invia</button>
						</div>
						
						<div id="footer-dxScrivimi1">
           <span class="red">Scrivi questo codice</span>
					 <br />
        	<input type="text" name="validator" class="validator" onkeyup="contaValid(); validatoreCampo()" onblur="validatoreCampo(); this.value=ignoreSpaces(this.value)" />
			      <script type="text/javascript">Captcha();</script>
				    </div>
				<div id="contaValid"></div><div id="validatoreCampo"></div> 
	</div>	<!--footer -->
	</fieldset> <!-- contenuto1 -->
      </form>
<?php
if(isset($_POST['invia'])){
    if(trim($_POST['nome'])== ""){
        echo "Inserire il nome";
    }else{
        echo " " . $_POST['nome'];
    }
}
?>
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
In un qualche modo sto riuscendo a farlo funzionare, io in un file esterno ho i codici js e css, ma mi richiama solo i css :confused:
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Diciamo che ho quasi risolto tutto, in base al tuo codice quando compio il campo lo stampa, ma poi se lo riempio ancora stampa quello nuovo ma cancella il precedente devo fare in modo che li stampa uno sotto l'altro senza cacellarli.


PHP:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" > 
<input type="text" id="nome" name="nome"/> 
<input type="submit" id="invia" name="invia" value="Invia"/>  
</form> 
<?php 
if(isset($_POST['invia'])){ 
    if(trim($_POST['nome'])== ""){ 
        echo "Ciao gnocco non hai messo il nome"; 
    }else{ 
        echo "Ciao " . $_POST['nome']; 
    } 
} 
?>
 
Discussioni simili
Autore Titolo Forum Risposte Data
L inviare i dati di un form ad un database PHP 6
O [PHP] inviare dati da form e script ajax PHP 0
I [PHP] inviare form con allegato tramite una mail PHP 1
I Guida/Tutorial configurare PHPMailer per inviare mails tramite contact form? PHP 2
F [Javascript] Inviare i campi di un form col metodo post Javascript 7
E [PHP] inviare 2 form consecutivamente PHP 4
A Creare da form un PDF da inviare come allegato. PHP 1
P Creare form e inviare via mail HTML e CSS 2
S inviare the_title() in una mail tramite form html/php PHP 0
Shyson Inviare css con form email PHP 1
G Inviare un form HTML e CSS 9
ciccio1892 Select concatenate con Ajax inviare scelta utente tramite post insieme ad altri dati form PHP 3
U form mail per inviare tracciabilità corriere PHP 0
L controllo form radio prima di inviare jQuery 1
P Inviare mail da form php anche al mittente PHP 37
IImanuII Form mail scelta se inviare il testo in html PHP 5
F Inviare dati da multi form Javascript 3
K Aiuto! inviare dati da form a database mysql MySQL 2
anthares Inviare dati da form a database PHP 14
S Inviare contenuto form a un indirizzo email HTML e CSS 1
Pennablu1 Form per inviare e mail HTML e CSS 10
A Inviare una sessione in un form ! PHP 8
R Inviare file tramite un form a un indirizzo email tramite pagina php PHP 1
R Inviare dati form a indirizzo email PHP 23
M file php per inviare dati form PHP 0
M Modifica form per inviare immagini a indirizzo meil PHP 1
J inviare file senza form Classic ASP 8
S inviare dati da un form a database access Flash 0
grottafelix Inviare un form a due mail Classic ASP 6
V Problemi a inviare form a db Classic ASP 7
csi Inviare file jpg in locale alla stampante con php PHP 0
M Inviare un file su un server remoto con JavaScript Javascript 0
E Inviare variabile a PHP da ciclo in JS Javascript 0
M Inviare dati nel db dopo risposta alert PHP 0
D INVIARE PAGINA XHTML TRAMITE EMAIL HTML e CSS 1
D [HTML] Inviare un link contenente un' immagine HTML e CSS 4
M Inviare variabili da menu a tendina a pagina php con post PHP 6
A [PHP] Inviare mail con piu immagini allegate PHP 6
C non riesco a inviare la posta con account alice Posta Elettronica 1
L [Javascript] aiuto non riesco a inviare in get dal server web locale su altervista con httpRequest Javascript 0
A Non riesco ad inviare una mail attraverso PHP su Xampp PHP 2
L 120 SMS Gratis da inviare in qualsiasi momento Vendere e Acquistare pubblicita' online 0
angelo85 Sito joomla che permetta agli utenti di inviare mail Joomla 2
H [PHP] Inviare dati PHP 3
S PHP: inviare via email contenuto di una funzione PHP 4
M Come inviare due mail diverse con phpmailer PHP 6
M Inviare mail con PHP tramite Mozilla PHP 3
M Inviare mail dopo due giorni lavorativi PHP 3
M Inviare mail con href PHP 2
I Inviare dati POST tramite curl PHP 0

Discussioni simili