PHP एरे को json_encode का उपयोग करके जावास्क्रिप्ट फंक्शन में निम्नलिखित कोड लाइन्स के साथ पास किया जा सकता है:
<script>
var var_name = <?php echo json_encode($php_variable); ?>;
</script>
यदि JSON-जैसे स्ट्रिंग से ऑब्जेक्ट पार्स करने की आवश्यकता है (AJAX रिक्वेस्ट में आवश्यक), तो निम्नलिखित कोड लाइन्स उपयोग की जा सकती हैं:
var my_data = "<JSON-String>";
var my_var = JSON.parse(my_data);
उदाहरण
आइए एक उदाहरण देखें:
<?php
// PHP एरे बनाएं
$sample_array = array(
0 => "Hello",
1 => "there",
);
?>
<script>
// एरे के एलिमेंट्स एक्सेस करें
var passed_array = <?php echo json_encode($sample_array); ?>;
// एरे के अंदर एलिमेंट्स डिस्प्ले करें
for(var i = 0; i < passed_array.length; i++){
document.write(passed_array[i]);
}
</script>
आउटपुट
Hellothere
सुरक्षित और मजबूत तरीका
<?php
$data = [
'users' => [
['name' => 'John', 'age' => 30],
['name' => 'Jane', 'age' => 25]
],
'meta' => ['count' => 2, 'timestamp' => time()]
];
?>
<script>
// XSS प्रोटेक्शन के लिए json_encode विकल्प
const appData = JSON.parse(
'<?php echo json_encode($data, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP); ?>'
);
console.log(appData.users[0].name); // "John"
</script>
AJAX के साथ (अनुशंसित)
// PHP (api.php)
header('Content-Type: application/json');
echo json_encode($data);
// JavaScript
fetch('/api.php')
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
महत्वपूर्ण: इंलाइन PHP में JSON आउटपुट करते समय हमेशा JSON_HEX_TAG आदि विकल्पों का उपयोग करें XSS रोकने के लिए।