2010-09-14 15 views
8

मुझे आश्चर्य है कि POST चर के क्रम पर कोई गारंटी है या नहीं, मैं सर्वर की तरफ देखूंगा।किसी HTML फ़ॉर्म में सबमिट किए गए सरणी का अपेक्षित आदेश क्या है?

मेरा उपयोग केस मेरे पास एक ऐसा फॉर्म है जिसे उपयोगकर्ता नाम और ईमेल की एक सूची दर्ज करने के लिए भर देगा। मैं एक तालिका पंक्तियों का उपयोग कर रहा है, जिनमें से प्रत्येक दो आदानों है:

<table> 
<tr> 
<td><input type='text' name='name[]' /></td> 
<td><input type='text' name='email[]' /></td> 
</tr> 
<tr> 
<td><input type='text' name='name[]' /></td> 
<td><input type='text' name='email[]' /></td> 
</tr> 
</table> 

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

सर्वर की तरफ, मुझे $ _POST ['ईमेल'] और $ _POST ['name'] सेट दिखाई देता है, लेकिन मुझे आश्चर्य है कि क्या मैं सुरक्षित रूप से $ _POST ['ईमेल'] [0] मान सकता हूं $ _POST ['name'] [0], $ _POST ['ईमेल'] [1] $ _POST ['name'] [1] के अनुरूप होगा, और इसी तरह। कुछ बुनियादी परीक्षण हां को इंगित करते हैं लेकिन मुझे आश्चर्य है कि क्या गारंटी है या अगर मैं भाग्यशाली हो रहा हूं।

उत्तर

12

क्यों नहीं की तरह एक समूहीकरण कुंजी जोड़ें:

<td><input type='text' name='user[0][name]' /></td> 
<td><input type='text' name='user[0][email]' /></td> 
</tr> 
<tr> 
<td><input type='text' name='user[1][name]' /></td> 
<td><input type='text' name='user[1][email]' /></td> 

और फिर जब तुम वर्तमान संख्या के आधार पर क्लोन user अनुक्रमित सेट manuall। इस तरह सब कुछ पहले से ही coallated है।

1

डेटा उसी तरह के क्रम में दिखाई देगा जैसा प्रपत्र में है। तो पहली पंक्ति कुंजी 0, दूसरी पंक्ति है - 1.

+0

कौन कहता है? मुझे पूरी तरह से यकीन है, अगर मैं इसे उत्पादन में उपयोग करूंगा। –

+0

आप सरल फॉर्म और var_dump परिणाम का परीक्षण क्यों नहीं करते हैं। आप परिणाम देखेंगे। परिणाम हमेशा फॉर्म एचटीएमएल जैसा ही होगा (निश्चित रूप से आप उन तत्वों की दृश्यता स्थिति बदल सकते हैं जिनके पास कोई प्रभाव नहीं है) –

+1

एचटीएमएल स्पेक कहता है: "दस्तावेज़ में दिखाई देने वाले क्रम में नियंत्रण नाम/मान सूचीबद्ध होते हैं । " http://www.w3.org/TR/html401/interact/forms.html#form-content-type – webbiedave

0

के रूप में Vaidas Zilionis कहा, डेटा ठीक उसी क्रम में दिखाई देगा के रूप में वे के रूप में दिखाई देते हैं, W3C के HTML 4.01 Specification देखें:

आवेदन/एक्स-www फार्म-urlencoded
[...] 2. नियंत्रण नाम/मान क्रम में वे दस्तावेज़ में प्रदर्शित में सूचीबद्ध हैं।

बहुखण्डीय/फार्म-डेटा
[...] ए 'बहुखण्डीय/फार्म-डेटा "संदेश भागों की एक श्रृंखला है, प्रत्येक एक सफल नियंत्रण का प्रतिनिधित्व करने में शामिल है। भागों को प्रोसेसिंग एजेंट पर उसी क्रम में भेजा जाता है, संबंधित नियंत्रण दस्तावेज़ स्ट्रीम में दिखाई देते हैं। एक सरणी एक HTML के रूप में प्रस्तुत की उम्मीद आदेश

7

क्या है?

HTML विनिर्देश के अनुसार:

नियंत्रण नाम/मान क्रम में वे दस्तावेज़ में दिखाई देते हैं

http://www.w3.org/TR/html401/interact/forms.html#form-content-type

हालांकि में सूचीबद्ध हैं, यह बेहतर कोडिंग है Prodigitalson के जवाब में दिखाए गए एक अनुक्रमित सरणी दृष्टिकोण को नियोजित करने का अभ्यास करें।

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