दिलचस्प पोस्ट
jQuery दिनांक स्वरूपण AngularJS POST असफल: preflight के लिए प्रतिक्रिया अमान्य है HTTP स्थिति कोड 404 बुरी तरह से नामित गिट शाखा को हटाने सूचक के साथ एक स्ट्रिंग संशोधित करें आप एम्बेडेड यूट्यूब प्लेयर कैसे म्यूट करते हैं? मैं भौतिक पिक्सल में एक WPF आकार कैसे परिवर्तित करूं? सी संरचना काम पर हैक LINQ से इकाईयों का मामले संवेदनशील तुलना AngularJs – रूट परिवर्तन ईवेंट को रद्द करें एक चुटकी का पता लगाने के लिए सबसे सरल तरीका स्ट्रिंग से नई लाइन वर्ण कैसे निकालें? जावा स्विंग टेक्स्टएरिया में हाइलाइटिंग रंग कैसे बदल सकता है? और यह भी, हाइलाइटिंग स्थान से संबंधित टेक्स्ट की शुरुआत में बदलाव करें सी # में, जांच कैसे करें कि क्या एक टीसीपी पोर्ट उपलब्ध है? सी # में सामान्य तर्क की शून्य या डिफ़ॉल्ट तुलना ऑब्जेक्ट की सूची को सॉर्ट करने के लिए कैसे करें

दो एक फार्म में बटन सबमिट करें

मेरे पास एक फार्म में दो सबमिट बटन हैं मैं कैसे निर्धारित करूं कि कौन सा सर्वरर्स मारा गया था?

वेब के समाधान से एकत्रित समाधान "दो एक फार्म में बटन सबमिट करें"

यदि आप प्रत्येक को एक नाम देते हैं, तो क्लिक किए गए किसी भी अन्य इनपुट के रूप में भेजा जाएगा

<input type="submit" name="button_1" value="Click me"> 

आप प्रत्येक इनपुट को एक अलग मान दे सकते हैं और समान नाम रख सकते हैं:

 <input type="submit" name="action" value="Update" /> <input type="submit" name="action" value="Delete" /> 

फिर कोड चेक में यह देखने के लिए कि किसने ट्रिगर किया था:

 if ($_POST['action'] == 'Update') { //action for update here } else if ($_POST['action'] == 'Delete') { //action for delete } else { //invalid action! } 

इसके साथ ही एक समस्या है कि आप अपने तर्क को इनपुट के भीतर पाठ में बाँध रहे हैं। आप प्रत्येक को एक अद्वितीय नाम भी दे सकते हैं और उस इनपुट के अस्तित्व के लिए $ _POST की जांच कर सकते हैं:

 <input type="submit" name="update_button" value="Update" /> <input type="submit" name="delete_button" value="Delete" /> 

और कोड में:

 if (isset($_POST['update_button'])) { //update action } else if (isset($_POST['delete_button'])) { //delete action } else { //no button pressed } 

एक और भी बेहतर समाधान में फॉर्म जमा करने के लिए बटन टैग का उपयोग किया जाता है:

 <form> ... <button type="submit" name="action" value="update">Update</button> <button type="submit" name="action" value="delete">Delete</button> </form> 

इस तरह अंतरराष्ट्रीयकरण और कई प्रदर्शन भाषाओं (पूर्व समाधान में, बटन का लेबल भी सर्वर को भेजा गया मूल्य) के साथ कोई असुविधा नहीं है।

इसके लिए एक नया एचटीएमएल 5 दृष्टिकोण है, formaction विशेषता:

 <button type="submit" formaction="/action_one">First action</button> <button type="submit" formaction="/action_two">Second action</button> 

जाहिर है यह IE9 और पहले में काम नहीं करता है, लेकिन अन्य ब्राउज़रों के लिए आपको ठीक होना चाहिए (देखें: w3schools.com HTML <button> formaction attribute )

निजी तौर पर, मैं बैकअप के रूप में इस दृष्टिकोण के साथ सामान्य रूप से (जल्दी कथित प्रतिक्रिया के लिए) रूपों को प्रस्तुत करने के लिए जावास्क्रिप्ट का उपयोग करता हूं दोनों के बीच, केवल शामिल लोगों को IE <9 जावास्क्रिप्ट के साथ विकलांग नहीं है

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

संपादित करें: जैसा कि टिप्पणियों में पास्कल_डर द्वारा नोट किया गया है, यह विशेषता भी <input> टैग पर भी उपलब्ध है।

यह परीक्षण करने के लिए बेहद आसान है

 <form action="" method="get"> <input type="submit" name="sb" value="One"> <input type="submit" name="sb" value="Two"> <input type="submit" name="sb" value="Three"> </form> 

बस एक HTML पृष्ठ में, बटन पर क्लिक करें, और URL को देखें

शायद सुझाए गए समाधान यहां 200 9 में काम किए गए थे, लेकिन यह सभी अपवादित उत्तरों का परीक्षण किया गया और कोई भी ब्राउज़र किसी भी ब्राउज़र में काम नहीं कर रहा है।

मैं काम करने वाला एकमात्र समाधान यह है: (लेकिन मुझे लगता है कि इसका उपयोग करने के लिए थोड़ा बदसूरत)

 <form method="post" name="form"> <input type="submit" value="dosomething" onclick="javascript: form.action='actionurl1';"/> <input type="submit" value="dosomethingelse" onclick="javascript: form.action='actionurl2';"/> 

 <form> <input type="submit" value="Submit to a" formaction="/submit/a"> <input type="submit" value="submit to b" formaction="/submit/b"> </form> 

एकाधिक सबमिट बटन से निपटने का सर्वोत्तम तरीका सर्वर स्क्रिप्ट में स्विच केस का उपयोग कर रहा है

 <form action="demo_form.php" method="get"> Choose your favorite subject: <button name="subject" type="submit" value="html">HTML</button> <button name="subject" type="submit" value="css">CSS</button> <button name="subject" type="submit" value="javascript">Java Script</button> <button name="subject" type="submit" value="jquery">jQuery</button> </form> 

सर्वर कोड / सर्वर स्क्रिप्ट – जहां आप फ़ॉर्म सबमिट कर रहे हैं:

demo_form.php

 <?php switch($_REQUEST['subject']) { case 'html': //action for html here break; case 'css': //action for css here break; case 'javascript': //action for javascript here break; case 'jquery': //action for jquery here break; } ?> 

स्रोत: W3Schools.com

RoBorg सही है, लेकिन कुछ सावधान रहें – कम से कम आईई 6 और फ़ायरफ़ॉक्स 3 एक अलग बटन पर क्लिक करने के बजाय सबमिट करने के लिए "Enter" दबाकर अलग-अलग व्यवहार करते हैं। एफएफ 3 नाम / वैल्यू जोड़ी को प्रपत्र के साथ साथ पहले जमा इनपुट भेजने के लिए लगता है, जबकि आईई 6 कोई भी सबमिट इनपुट नहीं भेजता है।

चूंकि आपने सर्वर-साइड स्क्रिप्टिंग पद्धति का उपयोग नहीं किया है, इसलिए मैं आपको एक उदाहरण देता हूं जो कि Python के लिए काम करता है, हालांकि चेरीपी (यह अन्य संदर्भों के लिए भी उपयोगी हो सकता है):

 <button type="submit" name="register">Create a new account</button> <button type="submit" name="login">Log into your account</button> 

यह बटन निर्धारित करने के लिए मान का उपयोग करने के बजाय, आप नाम का उपयोग कर सकते हैं ( <input> बजाय <button> टैग के साथ)। इस तरह, यदि आपके बटन में एक ही पाठ है, तो यह समस्याएं पैदा नहीं करेगा। सभी फार्म आइटमों के नाम, बटन सहित, यूआरएल के भाग के रूप में भेजे जाते हैं। चेरी पी में, उनमें से प्रत्येक सर्वर-साइड कोड वाली विधि के लिए एक तर्क है इसलिए, यदि आपकी पद्धति में केवल इसके पैरामीटर सूची (हर प्रकार के प्रत्येक एक नाम के कष्टप्रद ढंग से टाइप करने के बजाय) के लिए **kwargs तो आप यह देख सकते हैं कि किस बटन को दबाया गया है:

 if "register" in kwargs: pass #Do the register code elif "login" in kwargs: pass #Do the login code 
 <form method="post"> <input type="hidden" name="id" value="'.$id.'" readonly="readonly"/>'; //any value to post PHP <input type='submit' name='update' value='update' formAction='updateCars.php'/> <input type='submit' name='delete' value='delete' formAction='sqlDelete.php'/> </form> 

मुझे लगता है कि आपको अपने जीईटी सरणी में नाम / मूल्य पढ़ने में समर्थ होना चाहिए। मुझे लगता है कि जो बटन क्लिक नहीं किया गया वह अभ्यस्त उस सूची में प्रकट होता है।

array रूप में name को परिभाषित करें

 <form action='' method=POST> (...) some input fields (...) <input type=submit name=submit[save] value=Save> <input type=submit name=submit[delete] value=Delete> </form> 

उदाहरण सर्वर कोड (PHP):

 if (isset($_POST["submit"])) { $sub = $_POST["submit"]; if (isset($sub["save"])) { // save something; } elseif (isset($sub["delete"])) { // delete something } } 

elseif बहुत महत्वपूर्ण है, क्योंकि दोनों को पार्स नहीं किया जाएगा यदि नहीं। का आनंद लें।

सरल आप विभिन्न सबमिट बटन पर फ़ॉर्म की कार्रवाई को बदल सकते हैं।

इसे दस्तावेज़ में आज़माएं

 $(".acceptOffer").click(function () { $("form").attr("action", "/Managers/SubdomainTransactions"); }); $(".declineOffer").click(function () { $("form").attr("action", "/Sales/SubdomainTransactions"); }); 

आप इसे भी ऐसा कर सकते हैं (मुझे लगता है कि आपके पास एन इनपुट हैं तो यह बहुत सुविधाजनक है)

 <input type="submit" name="row[1]" value="something"> <input type="submit" name="row[2]" value="something"> <input type="submit" name="row[3]" value="something"> 

और फिर सर्वर साइड में (मेरे उदाहरण में PHP) आप इंडेक्स प्राप्त करने के लिए "पंक्ति" को सरणी के रूप में पढ़ सकते हैं:

 $index = key($_POST['row']); 

$ _POST ['पंक्ति'] फ़ॉर्म अनुक्रमणिका => मान (उदाहरण के लिए: '2' => 'कुछ') में सिर्फ एक तत्व के साथ एक सरणी होगी।

http://php.net/manual/en/function.key.php

आप एक href विशेषता का उपयोग भी कर सकते हैं और प्रत्येक बटन के लिए जोड़े गए मान के साथ प्राप्त कर सकते हैं। लेकिन फॉर्म की आवश्यकता तब नहीं होगी

 href="/SubmitForm?action=delete" href="/SubmitForm?action=save" 

आप इस तरह से बटन प्रस्तुत कर सकते हैं:

 <input type="submit" name="typeBtn" value="BUY"> <input type="submit" name="typeBtn" value="SELL"> 

और फिर कोड में आप मूल्य का उपयोग कर सकते हैं:

 if request.method == 'POST': #valUnits = request.POST.get('unitsInput','') #valPrice = request.POST.get('priceInput','') valType = request.POST.get('typeBtn','') 

(valUnits और valPrice कुछ अन्य मूल्यों है कि मैं उदाहरण के लिए छोड़ दिया है कि फार्म से निकालने के लिए)