2012-12-05 13 views
8

पर भेजें मेरे पास एक php फ़ाइल है जो एक चर उत्पन्न करती है और मैं वैरिएबल को जावास्क्रिप्ट फ़ंक्शन में डाल देना चाहता हूं जिसे मुख्य पृष्ठ पर क्लिक करके बुलाया जाता है। क्या PHP से जावास्क्रिप्ट को भेजना संभव है?PHP वैरिएबल को जावास्क्रिप्ट फ़ंक्शन

+1

क्या प्रत्येक क्लिक के बाद इसे अलग होने की आवश्यकता है (उदा।, एक स्क्रिप्ट जो वर्तमान सर्वर-साइड टाइम उत्पन्न करती है)? यदि ऐसा है, तो आपको शायद [अजाक्स] (https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started) की आवश्यकता है। – apsillers

उत्तर

15

आप निम्न कर सकते हैं:

<script type='text/javascript'> 
    document.body.onclick(function(){ 
     var myVariable = <?php echo(json_encode($myVariable)); ?>; 
    }; 
</script> 
+0

मैं यह निर्दिष्ट कैसे करूं कि मैं कौन सी php फ़ाइल को चर से प्राप्त कर रहा हूं? – user1879926

+1

मुझे लगता है कि आपको थोड़ा और अधिक सीखना होगा। एक साधारण ट्यूटोरियल लें जो आपको दिखाएगा कि सामान कैसे गूंजना है। http://php.net/manual/en/tutorial.php –

+1

आज़माएं क्यों json_encode होना जरूरी है? क्यों न केवल $ myVariable गूंज? – TGeorge

1

अगर मैं तुम्हें सही ढंग से समझ, आप निम्न की तर्ज पर कुछ करने के लिए सक्षम होना चाहिए:

function clicked() { 
    var someVariable="<?php echo $phpVariable; ?>"; 
} 
+1

आपको इसे अर्धविराम – mplungjan

+0

@username tbd के साथ समाप्त करने की आवश्यकता है क्या मुझे संपूर्ण php फ़ाइल को ब्रैकेट में रखना होगा? यदि नहीं, तो मैं यह निर्दिष्ट करने में सक्षम कैसे होगा कि वेरिएबल कौन सी php फ़ाइल आ रही है? – user1879926

4

आपका जावास्क्रिप्ट एक PHP-पार्स फ़ाइल के भीतर परिभाषित करना होगा।

उदाहरण के लिए, index.php में आप बन सकता था

<?php 
$time = time(); 
?> 
<script> 
    document.write(<?php echo $time; ?>); 
</script> 
4

बस लिखें:

<script> 
    var my_variable_name = "<?php echo $php_string; ?>"; 
</script> 

अब यह एक जावास्क्रिप्ट रूप में उपलब्ध है उपरोक्त कोड के नीचे किसी भी बिंदु पर my_variable_name के नाम से परिवर्तनीय।

0

आप जावास्क्रिप्ट को PHP मान पास कर सकते हैं। PHP सर्वर पक्ष निष्पादित करेगा ताकि मूल्य की गणना की जाएगी और फिर आप इसे जावास्क्रिप्ट वाले HTML पर प्रतिबिंबित कर सकते हैं। जावास्क्रिप्ट तब क्लाइंट ब्राउज़र में मूल्य PHP के साथ सर्वर-पक्ष के साथ निष्पादित करेगा।

<script type="text/javascript"> 
    // Do something in JavaScript 
    var x = <?php echo $calculatedValue; ?>; 
    // etc.. 
</script> 
1

jQuery/AJAX का उपयोग करने के लिए एक शानदार विकल्प है। Look at these examples और उन्हें अपने सर्वर पर आज़माएं। इस उदाहरण में, FILE1.php में, ध्यान दें कि यह एक खाली मान गुजर रहा है।

data: 'username='+username+'&password='+password, 

FILE2.php उदाहरण में, आप इस तरह उन मूल्यों को पुनः प्राप्त होगा:: यदि आप चाहें तो, (यह मानते हुए जावास्क्रिप्ट username और password बुलाया वार्स कुछ इस तरह दिखाई हो सकता है आप एक मूल्य के पारित कर सकते हैं

$uname = $_POST['username']; 
$pword = $_POST['password']; 

फिर अपने MySQL देखने करते हैं और मूल्यों इस प्रकार वापसी:

echo 'You are logged in'; 

यह सु के लिए संदेश You are logged in देने हैं FILE1.php में ccess फ़ंक्शन, और संदेश स्ट्रिंग को "डेटा" नामक चर में संग्रहीत किया जाएगा। इसलिए, सफलता समारोह में alert(data); लाइन उस संदेश को चेतावनी देगी। बेशक, आप echo कुछ भी पसंद कर सकते हैं, यहां तक ​​कि बड़ी मात्रा में HTML, जैसे कि संपूर्ण तालिका संरचनाएं।

Here is another good example समीक्षा करने के लिए।

दृष्टिकोण अपना फॉर्म बनाना है, और फिर बटन दबाएं और AJAX के माध्यम से डेटा को माध्यमिक PHP फ़ाइल में सबमिट करने के लिए jQuery का उपयोग करें। उपर्युक्त उदाहरण दिखाते हैं कि यह कैसे करें।

माध्यमिक PHP फ़ाइल चर (यदि कोई भेजा जाता है) प्राप्त करता है और एक प्रतिक्रिया देता है (जो भी आप भेजना चुनते हैं)। उस प्रतिक्रिया में सफलता में प्रकट होता है: आपके AJAX कॉल का अनुभाग "डेटा" (इन उदाहरणों में) के रूप में।

jQuery/AJAX कोड जावास्क्रिप्ट है, इसलिए आपके पास दो विकल्प हैं: आप इसे अपने मुख्य PHP दस्तावेज़ में <script type="text/javascript"></script> टैग के भीतर रख सकते हैं, या आप अपने PHP दस्तावेज़ के नीचे <?php include "my_javascript_stuff.js"; ?> कर सकते हैं।यदि आप jQuery का उपयोग कर रहे हैं, तो दिए गए उदाहरणों में jQuery लाइब्रेरी को शामिल करना न भूलें।

आपके मामले में, ऐसा लगता है कि आप सुझाए गए पहले उदाहरण को दर्पण कर सकते हैं, कोई डेटा नहीं भेज सकते हैं और AJAX सफलता फ़ंक्शन में प्रतिक्रिया प्राप्त कर सकते हैं। आपको उस डेटा के साथ जो कुछ भी करने की ज़रूरत है, हालांकि, आपको सफलता समारोह के अंदर करना होगा। पहले थोड़ा अजीब लगता है, लेकिन यह काम करता है।

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