2010-02-21 11 views
49

के रूप में ऐरे PHP में एक सत्र चर को सरणी बनाना संभव है। स्थिति यह है कि मेरे पास एक तालिका है (पृष्ठ 1) जिसमें कुछ कोशिकाएं किसी विशेष पृष्ठ से लिंक होती हैं। अगले पृष्ठ में उनके संबंधित चेकबॉक्स के साथ नामों की एक सूची होगी (पृष्ठ 2, जिसे मैं एक सत्र सरणी में रखना चाहता हूं)। इस फॉर्म को सबमिट करने पर, यह एक लेनदेन पृष्ठ (पृष्ठ 3, जहां पोस्ट किए गए चेकबॉक्स के मान संबंधित नामों के लिए डेटाबेस में रखा जाता है) का कारण बन जाएगा। अब, अगर मैं पहले पृष्ठ पर लौटता हूं और किसी अन्य सेल पर क्लिक करता हूं, तो क्या सत्र सरणी में नामों या पुराने लोगों की नई सूची होगी?सत्र परिवर्तनीय

उत्तर

51

हाँ, पीएचपी सत्र चर के रूप में सरणियों का समर्थन करता है। उदाहरण के लिए this page देखें।

आपके दूसरे प्रश्न के लिए: एक बार जब आप सत्र चर सेट करते हैं, तब तक यह वही रहेगा जब तक आप इसे या unset नहीं बदलते। तो यदि तीसरा पृष्ठ सत्र चर बदलता नहीं है, तो यह तब तक रहेगा जब तक कि दूसरा पृष्ठ इसे दोबारा बदल नहीं लेता।

+0

क्या आप प्रश्न के बाद के हिस्से में मेरा संदेह स्पष्ट कर सकते हैं ..? –

+1

यदि आप पहले पृष्ठ पर वापस जाते हैं और दूसरे पृष्ठ पर क्लिक करते हैं (जहां डेटा सत्र में रखा जाता है) सत्र डेटा में डेटा का एक नया सेट होगा। –

+0

धन्यवाद मुझे यह मिला .. :) –

66

हाँ, आप सरणियों सत्रों में, रख सकते हैं उदाहरण:

$_SESSION['name_here'] = $your_array; 

अब आप आप चाहते हैं किसी भी पृष्ठ पर $_SESSION['name_here'] उपयोग करते हैं लेकिन यकीन है कि आप किसी भी सत्र कार्यों उपयोग करने से पहले session_start() लाइन डाल कर, तो आप ऐसा कर सकते हैं कोड कुछ इस तरह दिखना चाहिए:

session_start(); 
$_SESSION['name_here'] = $your_array; 

संभव उदाहरण:

session_start(); 
$_SESSION['name_here'] = $_POST; 

अब आप इस तरह किसी भी पृष्ठ पर फ़ील्ड मान प्राप्त कर सकते हैं:

echo $_SESSION['name_here']['field_name']; 

अपने प्रश्न के दूसरे भाग के रूप में, सत्र चर वहाँ रहने जब तक आप अलग सरणी डेटा आवंटित:

$_SESSION['name_here'] = $your_array; 

सत्र जीवन समय php.ini फ़ाइल में सेट किया गया है।

More Info Here

+0

मेरे प्रश्न के दूसरे भाग के बारे में क्या ..? –

+0

@ अनुराग: मैंने प्रश्न के आपके दूसरे भाग के लिए अपना प्रश्न अपडेट कर लिया है। धन्यवाद :) – Sarfraz

+0

बहुत बहुत धन्यवाद ... –

1

पहले इंपोड() फ़ंक्शन का उपयोग करके सरणी को स्ट्रिंग में बदलें। E.g $number=array(1,2,3,4,5,...); $stringofnumber=implode("|",$number); फिर स्ट्रिंग को एक सत्र में पास करें। उदाहरण के लिए $_SESSION['string']=$stringofnumber; इसलिए जब आप उस पृष्ठ पर जाते हैं जहां आप सरणी का उपयोग करना चाहते हैं, तो बस अपनी स्ट्रिंग को विस्फोट करें। उदाहरण $number=explode("|", $_SESSION['string']); आखिरकार संख्या आपकी सरणी है लेकिन प्रत्येक पृष्ठ पर सरणी शुरू करना याद रखें।

0
session_start();   //php part 
$_SESSION['student']=array(); 
$student_name=$_POST['student_name']; //student_name form field name 
$student_city=$_POST['city_id']; //city_id form field name 
array_push($_SESSION['student'],$student_name,$student_city); 
//print_r($_SESSION['student']); 


<table class="table">  //html part 
    <tr> 
     <th>Name</th> 
     <th>City</th> 
    </tr> 

    <tr> 
    <?php for($i = 0 ; $i < count($_SESSION['student']) ; $i++) { 
    echo '<td>'.$_SESSION['student'][$i].'</td>'; 
    } ?> 
    </tr> 
</table> 
संबंधित मुद्दे