2012-03-02 17 views
7

यदि मेरे पास अलग-अलग सबमिट फ़ॉर्म वाले एकाधिक HTML टैग हैं, तो मुझे कैसे पता चलेगा कि PHP फ़ाइल में पोस्ट किया गया था जो फ़ॉर्म के डेटा को संसाधित करता है?एक पृष्ठ पर एकाधिक HTML फॉर्म

उत्तर

4

सबसे आसान तरीका है अपने प्रस्तुत बटन प्रपत्र के लिए अद्वितीय नाम के लिए है। यदि आप कई एक ही रूप के लिए बटन प्रस्तुत है इस का उपयोग कर सकते हैं (जैसे - सबमिट करें और बचाने के लिए, सबमिट करें और वापसी, सबमिट करें और बाहर निकलें)

<input type="submit" name="action" value="Save"> 
<input type="submit" name="action" value="Return"> 
<input type="submit" name="action" value="Exit"> 

$ _POST सरणी (या $ _GET/$ _ अनुरोध) होगा अधिनियमित बटन के मूल्य के साथ कुंजी "क्रिया" शामिल है (चाहे क्लिक किया गया हो या नहीं)।

एक नियम के रूप में, मैं छिपे हुए टेक्स्ट फ़ील्ड, आदि से गुजरने से बचता हूं, जो अनावश्यक हैं - बस कोड को और अधिक साफ रखने के लिए।

तो। अपने आवेदन के लिए, मैं अपने देना चाहते हैं जैसे बटन मूल्यों पर सबमिट करें:

<form id="Form1"> 
    <input type="submit" name="action" value="Form1"> 
</form> 

<form id="Form2"> 
<input type="submit" name="action" value="Form2"> 
</form> 

<form id="Form3"> 
<input type="submit" name="action" value="Form3"> 
</form> 
5

प्रत्येक में कुछ अद्वितीय डेटा शामिल करके। संभवतः एक छिपे हुए इनपुट के साथ।

7

आप प्रत्येक के रूप में इस तरह के एक इनपुट सेट कर सकते हैं:

<input type="hidden" name="form_id" value="identifier_of_form" /> 

उदाहरण के लिए:

<form method="post" action=""> 
    <input type="hidden" name="form_id" value="form_0" /> 
    <!-- snip --> 
</form> 

<form method="post" action=""> 
    <input type="hidden" name="form_id" value="form_1" /> 
    <!-- snip --> 
</form> 

<form method="post" action=""> 
    <input type="hidden" name="form_id" value="form_n" /> 
    <!-- snip --> 
</form> 
0

यह मेरे लिए काम करता ....

  1. प्रत्येक फ़ॉर्म एक अद्वितीय 'नाम' है ...

    प्रपत्र विधि = "पोस्ट" कार्रवाई = "" name = "uniqueName" id = "uniqueName"

  2. प्रत्येक प्रपत्र इस छिपी हुई फ़ील्ड है ...

    ,210

    इनपुट प्रकार = "छिपा" id = "action1_1" नाम = "action1" मूल्य = "1"

विशिष्ट आईडी विस्तार के साथ

(_1, _2, 3 ... और अनूठा मूल्य (1 , 2,3, ....) और आम नाम: action1

  1. तो php सूचकांक लिपि में

    :

    $ action1 = $ _POST [ 'action1'];

    अगर ($ action1 == "1") {("form_process1.php" में शामिल हैं, //...do जो कुछ भी रूप की जरूरत Dones ... } else if ($ action1 == "whateverelse "{"; // ... कर जो कुछ भी रूप है ...

1

क्यों बस के रूप में प्रपत्र नाम सेट नहीं form_process.php) (में शामिल हैं "}" action1 "," actions2 ", "action3",

यदि हां, तो कोई छुपा इनपुट आवश्यक नहीं है।

संबंधित मुद्दे