2015-05-26 9 views
12

Seguo php mysql novizio di ninja:Che cosa fa <form action = "?"> Quando si invia a self?

modello di modulo qui sotto

<form action="?" method="post"> 
    <div> 
     <label for="joketext">Type your joke here:</label> 
     <textarea id="joketext" name="joketext" rows="3" cols="40"></textarea> 
    </div> 
    <div><input type="submit" value="Add"></div> 
</form> 

parte del controller PHP: '?'

if(isset($_POST['joketext'])) //insert block 
{ 
    try 
    {      //prepared starement 
     $sql = 'INSERT INTO joke SET 
      joketext = :joketext, 
      jokedate = CURDATE()'; 

Che cosa significa la fare sotto forma di azione

+0

Invia i dati del modulo alla pagina corrente stessa se (isset ($ _ POST ['joketext'])) controlla se il modulo viene inviato o la pagina viene caricata per la prima volta – Babar

risposta

17

? viene utilizzato per separare il percorso dell'URL dalla stringa di query. In questo caso, la stringa di query è vuota, quindi è la stessa di se fosse stata action="".

Tuttavia, c'è una differenza. Se la pagina originale è stata caricata utilizzando un URL con una stringa di query, action="" invierà il modulo con la stessa stringa di query. Inserendo un esplicito ? nell'URL sostituisce la stringa di query originale con questa vuota.

1

In questo modo la forma pubblicherà i dati in una posizione "?", Se il file contiene il codice PHP non sarà necessario alcun action="?" È possibile rimuoverlo, il modulo sarà inviare a se stessa e sostituirla con isset($_POST["joketext"])isset($_POST["submit"]) per rilevare il pulsante di invio che sono stati cliccato non le joketext esistono

sarà come questo
HTML:

<form method="post"> 
<div> 
    <label for="joketext">Type your joke here:</label> 
    <textarea id="joketext" name="joketext" rows="3" cols="40"></textarea> 
</div> 
<div><input type="submit" name="submit" value="Add"></div> 

P HP:

if(isset($_POST['submit'])) //insert block 
{ 
    try 
    {      //prepared starement 
    $sql = 'INSERT INTO joke SET 
     joketext = :joketext, 
     jokedate = CURDATE()'; 
2

Utilizza l'URL corrente con una stringa di query vuota come azione del modulo. Una stringa di query vuota che non indica alcuna stringa di query.

Problemi correlati