2012-08-12 12 views
7

के माध्यम से एक चर के एकाधिक मानों को कैसे पास किया जाए मेरे पास एक ऐसा एप्लिकेशन है जिसे मैं बना रहा हूं, और मैं एक निश्चित बिंदु पर फंस गया हूं।यूआरएल

मैं एक चर को पारित करने की कोशिश कर रहा हूं जिसमें एकाधिक मान हैं। तो मेरा यूआरएल इस तरह दिखेगा:

localhost/report.php?variable=value1, value2, value3 

समस्या यह है कि मुझे यकीन नहीं है कि मैं यह कैसे कर सकता हूं। किसी डेटाबेस से डेटा पुनर्प्राप्त करने के लिए चर का उपयोग किया जाना चाहिए। मैं PHP और कोई जावास्क्रिप्ट का उपयोग कर रहा हूँ।

कोई भी मदद महान होगी!

संपादित करें:
यहाँ है एचटीएमएल मैं अपने पृष्ठ में है जहां चर चुने गए हैं:

<select name="types" size="19" multiple> 
    <option value="all" selected>All Types</option> 
    <option value="book" selected>Books</option> 
    <option value="cd" selected>CD</option> 
</select> 

इसलिए, यदि उपयोगकर्ता पुस्तकें और सीडी को चुन सकते हैं, और मैं इन दो मानों पारित करने के लिए की आवश्यकता होगी "प्रकार" चर में।

+1

एक धारावाहिक सरणी के बारे में कैसे? –

+0

क्या आप इसे भेजने के लिए उपयोग कर रहे हैं? यदि ऐसा है तो php को इसे $ _POST ['प्रकार'] में सरणी के रूप में प्राप्त करना चाहिए? – wgcrouch

+0

@wgcrouch मैं इसे भेजने के लिए एक फॉर्म का उपयोग कर रहा हूं। लेकिन जब मैं इसे भेजता हूं तो यूआरएल 'report.php? Variable = value1 और variable = value2' – mickburkejnr

उत्तर

5

जैसा कि https://stackoverflow.com/a/2407401/1265817 पर बताया गया है, आप इस विधि का उपयोग कर सकते हैं।

आप $ _GET के इलाज के लिए पीएचपी चाहते हैं [ 'Select2'] के रूप विकल्पों में से एक सरणी सिर्फ इस तरह का चयन तत्व के नाम के वर्ग कोष्ठक जोड़ें: <select name="select2[]" multiple …

तो फिर आप अपने PHP में सरणी acces कर सकते हैं स्क्रिप्ट

<?php 
header("Content-Type: text/plain"); 

foreach ($_GET['select2'] as $selectedOption) 
    echo $selectedOption."\n"; 
7

उपयोग &

localhost/report.php?variable=value1&val2=value2&val3=value3 

है कि आप के बाद क्या कर रहे हैं है?

+3

कई चर, एक से अधिक मान –

+0

की क्रमबद्ध साथ नहीं एक चर है कि, क्या मैं वास्तव में जरूरत है कि चर के सभी मान जोड़ना है। तो PHP कोड में मैं सिर्फ '$ चर = $ _GET उपयोग कर सकते हैं [ 'चर']', तो फिर मैं $ चर क्वेरी में उपयोग कर सकते हैं। दोनों पृष्ठों ही डोमेन में हैं – mickburkejnr

+0

हैं, तो आप 'Session' चर का उपयोग कर सकते हैं? 'सत्र [" myStringName "] = someObject' तो बस इसे वापस आपको क्या चाहिए कास्ट कर पढ़ें। क्षमा करें, लेकिन मेरा PHP इतना अच्छा नहीं है, हालांकि। – jp2code

4

PHP में यह करने के लिए एक आसान तरीका है में एक सरणी देने के लिए और एक अनुक्रमित सरणी के रूप में अपने मूल्यों पारित करेंगे। आप की तरह कुछ करना होगा:

$value_array = array('types' => array('book', 'cd')); 
$query = http_build_query($value_array); 

तो यूआरएल $query का उपयोग कर उत्पन्न करते हैं।

2

मुझे लगता है कि आप अपने URL सही

localhost/report.php?variable=value1,value2,value3 

फिर report.php पेज

$variable = explode(",", $_GET["variable"]); 

// Output 
$variable[0] = "value1"; 
$variable[1] = "value2"; 
$variable[2] = "value3"; 
0

पर सभी मान प्राप्त करने के लिए PHP का उपयोग आप की तरह serialize उपयोग कर सकते हैं:

echo '<a href="index.php?var='.serialize($array).'"> Link </a>'; 

और unserialize का उपयोग कर डेटा प्राप्त करें:

$array= unserialize($_GET['var']); 

सरलीकृत फ़ंक्शन आपको सरणी प्रकार के स्टेरियल (स्ट्रिंग) संस्करण प्रदान करता है, और इसे बिना किसी फ़ंक्शन द्वारा पुनर्स्थापित किया जा सकता है।

+0

दिलचस्प विचार। अगर मैं 'index.php? Var =' को बुकमार्क या कॉपी करना चाहता हूं। Serialize ($ array)। '' लिंक, क्या मैं बाद में इसे फिर से लोड कर पाऊंगा या सत्र में खोया गया क्रमबद्ध डेटा है? – jp2code