2010-04-18 9 views
5

उदाहरण के लिए मेरे पास एक PHP सरणी है, जैसे कि यह एकजावास्क्रिप्ट में एक PHP सरणी के माध्यम से लूप की जरूरत है

<?php $s= array('a','b','c','d','e','f') ; ?> 

और मुझे जावास्क्रिप्ट में इसके माध्यम से लूप करने की आवश्यकता है, किसी भी विचार से मैं यह कैसे कर सकता हूं?

for (i=0 ; i < <?php echo sizeof($s) ?> ; i++) { 
document.write('<?php echo $s [somehow need to get the 'i' value into here] ?>'); 
} 

कोई सुझाव? धन्यवाद!

उत्तर

3
<?php 
$s= array('a','b','c','d','e','f') ; 
?> 

<?php foreach($s as $a){ ?> 

document.write('<?=$a?>'); 

<?php } ?> 

परीक्षण नहीं किया गया लेकिन यह एक ही तरीका है।

+0

धन्यवाद आदमी, यह इस तरह से काम करता है! –

+0

var lat = new Array(); var long = new Array(); Lat.push (''); long.push ('');

+0

मैं * वास्तव में * आशा करता हूं कि आप * बस * वर्र्स को प्रिंट नहीं कर रहे हैं ... (आपके पास इसके लिए 'echo' है) – mpen

3

हाँ .... जावास्क्रिप्ट सरणी पहले के रूप में अपने PHP सरणी को गूंजें, और उसके बाद उस पर लूप करें। अपने PHP सरणी पर लूपिंग का प्रयास न करें; आप नहीं कर सकते

+0

एक ... कैसे मैं एक जे एस सरणी में मेरी पीएचपी सरणी बाहर गूंज करते हैं? –

+0

'json_encode()' यह उपलब्ध होने पर एक अच्छी शुरुआत होगी। – ZeissS

+1

यह बहुत दुखी है: डी –

4

जावास्क्रिप्ट और PHP को संयुक्त नहीं किया जा सकता है। वे दो पूरी तरह से अलग कार्यक्रम हैं जो केवल अस्पष्ट रूप से संवाद करते हैं। PHP सर्वर कंप्यूटर पर चलता है और HTML उत्पन्न करता है। जावास्क्रिप्ट वेब ब्राउजर में क्लाइंट कंप्यूटर पर चलता है और उस HTML पर कार्य करता है। यदि आपको PHP से जानकारी को किसी भी तरह से जावास्क्रिप्ट में स्थानांतरित करने की आवश्यकता है, तो आपको इसे HTML में संग्रहीत करना होगा और जावास्क्रिप्ट को उस HTML के माध्यम से एक्सेस करना होगा। यदि आपको रिवर्स करने की आवश्यकता है, तो जावास्क्रिप्ट से PHP तक जानकारी ले जाएं, जावास्क्रिप्ट को क्वेरी स्ट्रिंग के साथ एक PHP पृष्ठ कॉल करें।

कहीं भी जावास्क्रिप्ट को प्राप्त करने के लिए आपके सरणी में जानकारी रखने का एक तरीका, इसे एक छिपे हुए div में गूंजना होगा। या तो एडेड स्पैन की श्रृंखला में या सिर्फ अल्पविराम से अलग सूची में। फिर आप इसे डीओएम से बाहर खींच सकते हैं।

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

<div style="display: none;" id="myArray"> 
<?php 
echo '<span id="myArray.count">'.sizeof($s).'</span>'; 
for ($i = 0; $i < sizeof($s); $i++) { 
    echo '<span id="myArray.'.$i.'">'.$s[$i].'</span>'; 
} 
?> 
</div> 

फिर जावास्क्रिप्ट में आप डोम में सरणी का उपयोग कर सकते हैं:

var myArray = new Array(); 

for(i = 0; i < document.getElementById('myArray.count').innerHTML; i++) { 
    document.write(document.getElementById('myArray.'+i).innerHTML); 
} 

अस्वीकरण: अपरीक्षित कोड, और मैं समय यह पूर्ण करने के लिए की जरूरत नहीं है अभी। अगर कोई और किसी भी त्रुटि को ठीक करने के लिए टिप्पणी करना या संपादित करना चाहता है तो मुक्त महसूस करें :)

+0

"अस्पष्ट संवाद", हुह? PHP एक templating तकनीक है, जेएस HTML/सीएसएस जैसे टेम्पलेट पाठ है। बस PHP को जेएस प्रिंट करें और फिर वेबब्रोसर जेएस को व्याख्या/निष्पादित करने का काम करने दें। आपको इसे छिपे हुए div या तो प्रिंट करने की आवश्यकता नहीं है। बस उदाहरण के लिए ' 'एक PHP वैरिएबल असाइन करने के लिए पर्याप्त है जैसे कि यह एक जेएस चर है। – BalusC

7

आपके ehco/print से पहले या फिर आपका PHP सरणी हम सुनिश्चित करते हैं कि यह जावास्क्रिप्ट सिंटैक्स में है।

<?php 
$s=array('a','b','c','d','e','f'); 
$s_to_json=json_encode((array)$s); 
?> 

<script type="text/javascript"> 

var fromPHP=<? echo $s_to_json ?>; 

for (i=0; i<fromPHP.length; i++) { 

yourValue=fromPHP[i]; 

} 

</script> 
0
<?php $religion = array('1'=>'hindu','2'=>'sikh','3'=>'muslim'); ?> 

<script> 

    <select name="religion_name"> 
    <?php foreach ($religion as $key => $value) 
    { echo" <option value=$key> $value->name </option>"; } ?> 
    </select> 

</script> 
+0

कृपया कुछ स्पष्टीकरण जोड़ें। – Gammer

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