2014-05-09 3 views
7

मैं एक .js फ़ाइल के अंदर निष्पादित करने के लिए PHP का एक सा पाने के लिए कोशिश कर रहा हूँ, लेकिन स्पष्ट रूप से कैसे ठीक यह करने के लिए पता नहीं है अंदर PHP कोड निष्पादित।एक .js फ़ाइल

असल में कोड मेरे पृष्ठ पर कुछ HTML टैग जोड़ रहा है, जिसे मैं स्लाइडआउट संपर्क फ़ॉर्म के लिए उपयोग कर रहा हूं। हालांकि संपर्क फार्म ही Wordpress में एक शोर्ट द्वारा किया जाता है। इसलिए मैं कोड फ़ॉर्म को स्लाइड करता है कि अंदर काम करने के लिए शोर्ट पाने के लिए कोशिश कर रहा हूँ।

var phpTest = '<?php do_shortcode("[contact-form-7 id=\'1088\' title=\'Live Chat Form\']"); ?>'; 

// add feedback box 
$this.html('<div id="fpi_feedback"><div id="fpi_title" class="rotate"><h2>' 
    + thisSettings.title 
    + '</h2></div><div id="fpi_content">' 
    + phpTest 
    + '</div></div>'); 

अगर मैं पाठ के साथ एक नियमित रूप से स्ट्रिंग के लिए चर "phpTest" बदलने के लिए, यह ठीक दिखाई देता है, मैं सिर्फ यकीन है कि इस उदाहरण में php निष्पादित करने के लिए कैसे नहीं हूँ।

+4

पीएचपी जावास्क्रिप्ट कहा जाता है से पहले मार डाला जाता है कर सकते हैं, तो यह होगा ** "कभी नहीं" ** काम करते हैं। –

+1

फ़ाइल को .js के बजाय .php के रूप में सहेजने का प्रयास करें। फिर इस कोड को '

4

मैं कह टिप्पणी की तरह अपने पृष्ठ पर शामिल करने के लिए है आपके सवाल का, लेकिन यह वास्तव में संभव है संभव नहीं है,। यह अनुशंसित नहीं है, लेकिन यदि आप संभावित सुरक्षा संबंधी दोषों के बारे में चिंतित नहीं हैं, यहाँ अपने प्रश्न पूरा करने के लिए एक तरीका है:

अपने .js फ़ाइलों के रूप में एक ही निर्देशिका में .htaccess फ़ाइल बनाएं, निम्नलिखित के साथ:

AddHandler application/x-httpd-php .js 

<FilesMatch "\.js$"> 
    Header set Content-Type "text/javascript; charset=utf-8" 
</FilesMatch> 

यह आपके JavaScript फ़ाइलों को निष्पादित करेंगे के रूप में पीएचपी, तो सामग्री प्रकार .js के लिए स्वचालित रूप से फ़ाइलें ठीक (जब आप php हैंडलर जोड़ने क्योंकि वे पाठ के रूप में देखा जाता है)।

नोट: हालांकि यह एक त्वरित और गंदे समाधान है, एक बेहतर तरीका अजाक्स उपयोग करने के लिए होगा (chiliNUT's Answer देखें)

+0

क्या आप इससे बेहतर तरीके से सुझाव दे सकते हैं क्योंकि आप इसके डाउनसाइड्स जानते हैं? वैसे, मुझे नहीं लगता कि मुख्य समस्या एक सुरक्षा छेद है। –

+0

जिस फॉर्म को मैं दिखाने की कोशिश कर रहा हूं, उसकी अपनी सुरक्षा/सत्यापन है, हालांकि मुझे लगता है कि इसका मतलब है कि यह विभिन्न सुरक्षा मुद्दों को खोल देगा। एक कंबल ".js" का उपयोग करने के बजाय मैं सटीक .js फ़ाइल नाम का उपयोग कर सकता हूं, इसलिए यह केवल एक .js फ़ाइल को प्रभावित करता है और मेरी वेबसाइट पर सभी .js नहीं? –

+0

@KerynGill हाँ, आप '^। Filename.js $' के साथ '\ .js $' को प्रतिस्थापित कर सकते हैं। –

0

मुझे लगता है कि आप इस AJAX का उपयोग कर की तरह कुछ कर सकते हैं:

जे एस कोड :

var xmlhttp; 
if (window.XMLHttpRequest){ 
    // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
}else{ 
    // code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 

xmlhttp.onreadystatechange=function(){ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200){ 
     $this.html('<div id="fpi_feedback"><div id="fpi_title" class="rotate"><h2>' 
     + thisSettings.title 
     + '</h2></div><div id="fpi_content">' 
     + xmlhttp.responseText 
     + '</div></div>'); 
    } 
} 

xmlhttp.open("GET","do_shortcode_file.php",true); 
xmlhttp.send(); 

do_shortcode_file।

PHP कोड:

<?php 
echo do_shortcode("[contact-form-7 id=\'1088\' title=\'Live Chat Form\']"); 

कुछ विवरण और अजाक्स के बारे में एक अच्छा उदाहरण के लिए AJAX Tutorial at w3schools.com देखें php कुछ इस तरह होना चाहिए।

अपने सिर टैग में

(यह एक निष्पादन php फ़ाइल होना चाहिए):

0

माना कि आपका फ़ाइल नाम myscript.js है

<head> 
<script type="text/javascript"> 
<?php 
require_once 'myscript.js'; 
?> 
</script> 

... ... इस तरह से आप उस फ़ाइल को निष्पादित करने में सक्षम हैं जैसे कि यह एक php फ़ाइल

1

आप एक .php फ़ाइल में AJAX पोस्ट अनुरोध कर सकते हैं। यह थोड़ा गंदा चाल है, लेकिन यह

$.post('thePhpFile',{var1:var1,var2:var2},function(result){ 
    //Code to do with the resulted... like $("#div").html(result); 
}); 

काम करता है कि चाल के साथ, आप मूल रूप से कुछ भी आप चाहते हैं

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