2013-05-08 7 views
9

Quanto segue è il mio HTML:HTML, facendo sì che un pulsante invii i dati a un altro URL?

<form class="form-horizontal" method="post"> 
     <div class="control-group"> 
      <label class="control-label" for="inputEmail">Email</label> 
      <div class="controls"> 
       <input type="text" id="inputEmail" placeholder="Email"> 
      </div> 
     </div> 
     <div class="control-group"> 
      <label class="control-label" for="inputPassword">Password</label> 
      <div class="controls"> 
       <input type="password" id="inputPassword" placeholder="Password"> 
      </div> 
     </div> 
     <div class="control-group"> 
      <div class="controls"> 
       <label class="checkbox"> 
        <input type="checkbox"> Remember me 
       </label> 
       <button type="submit" class="btn btn-success">Sign in</button> 
       <button class="btn btn-primary"> Make a new account </button> 
      </div> 
     </div> 
    </form> 

Nota: in caso qualcuno si chiede, si sta utilizzando la libreria di bootstrap .

ho avere la forma e posta al login.php ma voglio il pulsante Make a new account inviare gli stessi dati a register.php.

È possibile? Se é cosi, come?

+0

possibile duplicato di [Due pulsanti di invio in un unico modulo] (http://stackoverflow.com/questions/547821/two-submit-buttons-in-one-form) –

risposta

7

Impostare l'attributo del tag form all'URL della pagina in cui inviare i dati.

0
<form class="form-horizontal" method="post" action="register.php"> 
9

Provare quanto segue:

In HTML aggiungere un gestore di eventi onclick per Make a new account pulsante:

<form class="form-horizontal" method="post" id="myform"> 
     <div class="control-group"> 
      <label class="control-label" for="inputEmail">Email</label> 
      <div class="controls"> 
       <input type="text" id="inputEmail" placeholder="Email"> 
      </div> 
     </div> 
     <div class="control-group"> 
      <label class="control-label" for="inputPassword">Password</label> 
      <div class="controls"> 
       <input type="password" id="inputPassword" placeholder="Password"> 
      </div> 
     </div> 
     <div class="control-group"> 
      <div class="controls"> 
       <label class="checkbox"> 
        <input type="checkbox"> Remember me 
       </label> 
       <button type="submit" class="btn btn-success">Sign in</button> 
       <button class="btn btn-primary" onclick="javascript:register()"> Make a new account </button> 
      </div> 
     </div> 
    </form> 

In JavaScript:

function register() { 
    this.action = 'register.php'; 
    return true; 
} 

Se questo non funziona si, può provare:

function register() { 
    var frm = document.getElementById("myform"); 
    frm.action = 'register.php'; 
    return true; 
} 

Una o entrambe le soluzioni sopra menzionate dovrebbero funzionare per voi. Preferisci il primo approccio in quanto è più pulito.

Si prega di prendere questo come punto di partenza non una soluzione di copia-incolla e seguire le migliori pratiche per lo sviluppo.

+2

Perché utilizzare JS quando è presente un attributo in HTML esiste esattamente per quello? –

+2

@ItayGal, ci sono due pulsanti di invio sul modulo. Il richiedente desidera inviare lo stesso modulo a due URL diversi a seconda del pulsante su cui fa clic l'utente. Quindi, ** utilizziamo il valore predefinito per l'attributo action per un pulsante ** e ** per l'attributo action update al clic del secondo pulsante **. –

5

Ho il modulo e POST per login.php ma voglio il pulsante Crea un nuovo account pubblica gli stessi dati per register.php.

È possibile?

In HTML5 è, utilizzando l'attributo formaction sul pulsante di invio.

Ma il supporto del browser probabilmente non è ancora così buono. Potrebbe essere risolto utilizzando un Polyfil che collega automaticamente i gestori di clic a tali pulsanti e modifica dinamicamente l'attributo action del modulo.

+0

Il supporto del browser è disponibile qui: http://www.w3schools.com/tags/att_button_formaction.asp TLDR: se si tratta di un sito Web generale, probabilmente non è possibile utilizzarlo, ma se si dispone di una "Interfaccia Web" a un interno o utenti con restrizioni in cui si ha più potere di richiedere browser recenti, questa è la soluzione migliore. –

+0

@PauloSchreiner ti farai uccidere per aver usato w3schools come riferimento, solo per avvertirti. – FluorescentGreen5

Problemi correlati