2012-01-29 14 views
6
<form action="here.php" method="POST"> 
<input type="text" name="text"> 

<div id="one"> 
    <input type="hidden" name="aaa" value="one"> 
    <input type="submit" value="Send"> 
</div> 

<div id="two"> 
    <input type="hidden" name="aaa" value="two"> 
    <input type="submit" value="Send"> 
</div> 

</form> 

Şimdi farklı değerle göndermek her zaman $ _POST [ 'aaa'] = 'iki';Formu i var

Mümkün olan iki formlu bir formun farklı değerler ile gönderilmesi mümkün mü? i div birine tıklarsanız

i 'reveice $ _POST [ 'aaa'] = 'tek' ve ben istiyorum gönderirim div iki tıklarsanız almak $ _POST [ 'aaa'] = istiyoruz göndermek iki '.

Nasıl yapabilirim?

Bu PHP ve jQuery için kullanabilirim.

DÜZENLEME: iki form oluşturmak istemiyorum - ı iki defalarca <input type="text" name="text">

EDIT gösteren istemiyorum: belki yerine düğme gönderebilirim? ama nasıl?

+0

sadece iki form oluşturun. – c69

cevap

11

O ne aslında yapmak istediğim örneğin, düğmelerin her biri bir değere sahip this bkz olduğu görülmektedir:

<form action="demo_form.asp" method="get"> 
    Choose your favorite subject: 
    <button name="subject" type="submit" value="fav_HTML">HTML</button> 
    <button name="subject" type="submit" value="fav_CSS">CSS</button> 
</form> 
+4

Genellikle bağlantının artık bir bağlantı yerine çalışması durumunda (burada benim için olduğu gibi) cevabın buraya dahil edilmesi önerilir. –

4

İki farklı formları gerekir:

<div id="one"> 
    <form ...> 
     <input type="hidden" name="aaa" value="one"> 
     <input type="submit" value="Send"> 
    </form> 
</div> 

<div id="two"> 
    <form ...> 
     <input ...> 
     <input ...> 
    </form> 
</div> 

Standart uygulama iki alan aynı name varken, formda karşılaşılan yalnızca SON değeri kullanın ve bu sunmaları olmasıdır.

PHP aynı isimde birden fazla değer göndererek izin vermek için bir özel durum gösterimini (name="aaa[]") var, ama bu, sadece bir tane yakın aaa değerlerin TÜM göndermek istesem de o, burada yardımcı olmaz Gönder düğmesine.


HTML formu:

<form ...> 
<input type="text" name="textfield"> 

<div id="one"> 
    <input type="hidden" name="one_data" value="aaa" /> 
    <input type="submit" name="submit_one" value="Submit" /> 
</div> 

<div id="two"> 
    <input type="hidden" name="two_data" value="bbb" /> 
    <input type="submit" name="submit_two" value="Submit" /> 
</div> 
</form> 

sunucu tarafı:

if (isset($_POST['submit_two'])) { 
    $data = $_POST['two_data']; 
} else if (isset($_POST['submit_one'])) { 
    $data = $_POST['one_data']; 
} else { 
    die("Invalid submission"); 
} 
+0

bu tamam, ancak sayfamda iki kez göstermeyi istemiyorum

+0

Bazı javascript'i kullanarak, bir giriş alanının değerini her iki formda da başka bir gizli alana kopyalayabilirsiniz. gönderildi. Ama formunuz şu an yapılandırıldığından, bunun bir yolu yok.Her alana benzersiz adlar vermek gibi kullanabileceğiniz DİĞER hileler var ve hangi gönder düğmesine tıklandığını saptamak için bu gerçeği kullanın ve ardından yalnızca uygun değere erişin. –

+0

teşekkürler, ama nasıl yapacağımı bilmiyorum –

3

yerine iki gönder düğmesi göstermek yerine, iki seçenekli bir radyo listesini gösterebilir ve bir düğmesi gönderin.

3

bu deneyin:

HTML-

<input id="PreviousButton" value="Previous" type="submit" /> 
    <input id="NextButton" value="Next" type="submit" /> 

    <input id="Button" name="btnSubmit" type="hidden" /> 
yılında jOuery-

yılında

 $("#PreviousButton").click(function() { 
      $("#Button").val("Previous"); 
     }); 

     $("#NextButton").click(function() { 
      $("#Button").val("Next"); 
     }); 

daha sonra form sonuçlarında görebilirsiniz - hangi "Düğme" içerir.