दिलचस्प पोस्ट
शून्य भरा जावास्क्रिप्ट एरे बनाने के लिए सबसे कारगर तरीका है? परिपत्र प्रगति बार में रंग कैसे बदल सकता है? कैनवास गुणों को आइटम्स कॉंट्रॉल डाटाटाप्लेट में सेट करना स्मृति में कितने स्ट्रिंग ऑब्जेक्ट बनाए जाएंगे? समयपूर्व अनुकूलन के लिए व्यावहारिक नियम आवेदनविशेषतया बनाम बनाम एप्लिकेशनडिडबैकअक्टिव, एप्लिकेशनवालेरेसाइनएक्टिव बनाम एप्लिकेशनडेडएन्टरबैकग्राउंड पायथन – मुद्रित आइटम हटाएं और बदलें लंबे डबल बनाम डबल क्या आईओएस एप्लीकेशन में वैकल्पिक आइकन लागू करना संभव है? गिट का दोष: आंकड़े एक java.util.Calendar / Date के लिए TIMEZONE को बदलने के लिए क्या ViewModel के बजाय FormCollection का कोई अच्छा कारण है? केवल एक घड़ी चक्र में 32 बिट इनपुट के लिए वर्गमूल कैसे प्राप्त करें? एक सदस्य समारोह के अंत में एक const का क्या अर्थ है? मुझे एक SQL सर्वर प्रतिकृति प्रोजेक्ट पर "गलत प्रारूप के साथ प्रोग्राम लोड करने का प्रयास किया गया" त्रुटि मिलती है I

जावास्क्रिप्ट समारोह में एक PHP सरणी को पास करें

मैं एक जावास्क्रिप्ट चर में PHP सरणी चर प्राप्त करने का प्रयास कर रहा हूं।

यह मेरा कोड है:

<html> <head> <script type="text/javascript"> function drawChart(row,day,week,month,date) { // Some code... } </script> </head> <body> <?php for($counter = 0; $counter<count($au); $counter++) { switch($au[$counter]->id) { case pageID.'/insights/page_active_users/day': $day[] = $au[$counter]->value; break; case pageID.'/insights/page_active_users/week': $week[] = $au[$counter]->value; break; case pageID.'/insights/page_active_users/month': $month[] = $au[$counter]->value; break; } } ?> <script> drawChart(600/50, '<?php echo $day; ?>', '<?php echo $week; ?>', '<?php echo $month; ?>', '<?php echo createDatesArray(cal_days_in_month(CAL_GREGORIAN, date('m',strtotime('-1 day')), date('Y',strtotime('-1 day')))); ?>'); </script> </body> </html> 

मुझे PHP सरणी का मूल्य नहीं मिल सकता है

मैं इस समस्या को कैसे हल करूं?

वेब के समाधान से एकत्रित समाधान "जावास्क्रिप्ट समारोह में एक PHP सरणी को पास करें"

JSON का उपयोग करें

निम्नलिखित उदाहरण में $php_variable कोई भी PHP चर हो सकता है

 <script type="text/javascript"> var obj = <?php echo json_encode($php_variable); ?>; </script> 

आपके कोड में, आप निम्न की तरह उपयोग कर सकते हैं:

 drawChart(600/50, <?php echo json_encode($day); ?>, ...) 

उन मामलों में जहां आपको एक ऑब्जेक्ट को JSON-string से JSON.parse(..) जैसे कि AJAX अनुरोध में), सुरक्षित तरीके से नीचे की तरह JSON.parse(..) का उपयोग JSON.parse(..) :

 var s = "<JSON-String>"; var obj = JSON.parse(s); 

आप php के json_encode () * फ़ंक्शन का उपयोग करके PHP एरेज़ को जावास्क्रिप्ट में परिवर्तित कर सकते हैं

 <?php $phpArray = array( 0 => "Mon", 1 => "Tue", 2 => "Wed", 3 => "Thu", 4 => "Fri", 5 => "Sat", 6 => "Sun", ) ?> <script type="text/javascript"> var jArray= <?php echo json_encode($phpArray ); ?>; for(var i=0;i<6;i++){ alert(jArray[i]); } </script> 

दो प्लेटफ़ॉर्म के बीच डेटा ट्रांसफर के लिए एक सामान्य डेटा प्रारूप की आवश्यकता होती है। क्रॉस प्लेटफ़ॉर्म डेटा भेजने के लिए JSON एक सामान्य वैश्विक प्रारूप है।

 drawChart(600/50, JSON.parse('<?php echo json_encode($day); ?>'), JSON.parse('<?php echo json_encode($week); ?>'), JSON.parse('<?php echo json_encode($month); ?>'), JSON.parse('<?php echo json_encode(createDatesArray(cal_days_in_month(CAL_GREGORIAN, date('m',strtotime('-1 day')), date('Y',strtotime('-1 day'))))); ?>')) 

यह आपके प्रश्न का उत्तर है जवाब बहुत ही जटिल लग सकता है आप सर्वर साइड और क्लाइंट साइड के बीच संचार का वर्णन करते हुए एक सरल उदाहरण देख सकते हैं

 $employee = array( "employee_id" => 10011, "Name" => "Nathan", "Skills" => array( "analyzing", "documentation" => array( "desktop", "mobile" ) ) ); 

डेटा को क्लाइंट अनुप्रयोग पर वापस भेजने के लिए JSON प्रारूप में रूपांतरण आवश्यक है, अर्थात जावास्क्रिप्ट। PHP में फ़ंक्शन json_encode () में बनाया गया है, जो किसी डेटा को JSON प्रारूप में कनवर्ट कर सकता है। Json_encode फ़ंक्शन का आउटपुट इस तरह एक स्ट्रिंग होगा।

 { "employee_id": 10011, "Name": "Nathan", "Skills": { "0": "analyzing", "documentation": [ "desktop", "mobile" ] } } 

क्लाइंट साइड पर, सफलता फ़ंक्शन को JSON स्ट्रिंग मिलेगा। जावास्क्रिप्ट में JSON पार्सिंग फ़ंक्शन JSON.parse () भी है जो स्ट्रिंग को वापस JSON ऑब्जेक्ट में कनवर्ट कर सकता है।

 $.ajax({ type: 'POST', headers: { "cache-control": "no-cache" }, url: "employee.php", async: false, cache: false, data: { employee_id: 10011 }, success: function (jsonString) { var employeeData = JSON.parse(jsonString); // employeeData variable contains employee array. }); 

निम्न उदाहरण में आपके पास एक PHP सरणी है, फिर सबसे पहले एक PHP सरणी से एक जावास्क्रिप्ट एरे बनाएँ:

 <script type="javascript"> day = new Array(<?php echo implode(',', $day); ?>); week = new Array(<?php echo implode(',',$week); ?>); month = new Array(<?php echo implode(',',$month); ?>); <!-- Then pass it to the JavaScript function: --> drawChart(<?php echo count($day); ?>, day, week, month); </script>