javascript - एक .js फ़ाइल में jQuery फ़ंक्शन से PHP सत्र चर का उपयोग कैसे करें?





(7)


आप JSON का उपयोग कर अपने PHP स्क्रिप्ट से JQUERY तक सत्र चर भेज सकते हैं

जे एस:

jQuery("#rowed2").jqGrid({
    url:'yourphp.php?q=3', 
    datatype: "json", 
    colNames:['Actions'], 
    colModel:[{
                name:'Actions',
                index:'Actions', 
                width:155,
                sortable:false
              }], 
    rowNum:30, 
    rowList:[50,100,150,200,300,400,500,600], 
    pager: '#prowed2', 
    sortname: 'id',
    height: 660,        
    viewrecords: true, 
    sortorder: 'desc',
    gridview:true,
    editurl: 'yourphp.php', 
    caption: 'Caption', 
    gridComplete: function() { 
        var ids = jQuery("#rowed2").jqGrid('getDataIDs'); 
        for (var i = 0; i < ids.length; i++) { 
            var cl = ids[i]; 
            be = "<input style='height:22px;width:50px;' `enter code here` type='button' value='Edit' onclick=\"jQuery('#rowed2').editRow('"+cl+"');\" />"; 
            se = "<input style='height:22px;width:50px;' type='button' value='Save' onclick=\"jQuery('#rowed2').saveRow('"+cl+"');\" />"; 
            ce = "<input style='height:22px;width:50px;' type='button' value='Cancel' onclick=\"jQuery('#rowed2').restoreRow('"+cl+"');\" />"; 
            jQuery("#rowed2").jqGrid('setRowData', ids[i], {Actions:be+se+ce}); 
        } 
    }
}); 

पीएचपी

// start your session
session_start();

// get session from database or create you own
$session_username = $_SESSION['John'];
$session_email = $_SESSION['[email protected]'];

$response = new stdClass();
$response->session_username = $session_username;
$response->session_email = $session_email;

$i = 0;
while ($row = mysqli_fetch_array($result)) { 
    $response->rows[$i]['id'] = $row['ID']; 
    $response->rows[$i]['cell'] = array("", $row['rowvariable1'], $row['rowvariable2']); 
    $i++; 
} 

echo json_encode($response);
// this response (which contains your Session variables) is sent back to your JQUERY 

एक .js फ़ाइल में jQuery फ़ंक्शन से PHP सत्र चर का उपयोग कैसे करें? इस कोड में, मैं एक सत्र चर से "मान" प्राप्त करना चाहता हूं

$(function() {
   $("#progressbar").progressbar({
      value: 37
   });
});



आप जेएस में PHP सत्र चर / मानों तक नहीं पहुंच सकते हैं, एक सर्वर साइड (PHP), अन्य क्लाइंट साइड (जेएस) है।

आप क्या कर सकते हैं, एक AJAX कॉल कहकर, अपने जेएस को सत्र मूल्य पास या वापस कर दें। अपने जेएस में, एक PHP स्क्रिप्ट पर कॉल करें जो आपके JS को SESSION चर के मान पर वापस लौटने के लिए आउटपुट करता है, फिर इस लौटाई गई जानकारी को संभालने के लिए अपने जेएस का उपयोग करें।

वैकल्पिक रूप से मूल्य को कुकी में संग्रहीत करें, जिसे किसी भी ढांचे द्वारा एक्सेस किया जा सकता है .. हालांकि यह आपकी स्थिति में सबसे अच्छा तरीका नहीं हो सकता है।

या आप अपने PHP में कुछ जेएस जेनरेट कर सकते हैं जो चर / रिटर्न को सेट करता है, यानी:

<? php
echo "<script type='text/javascript'>
    alert('".json_encode($_SESSION['msg'])."');
</script>";
?>



यदि आप PHP और JS के स्पष्ट पृथक्करण को बनाए रखना चाहते हैं (यह सिंटैक्स हाइलाइटिंग और आईडीई में आसानी से जांच कर रहा है) तो आप अपने कोड के लिए jquery प्लगइन्स बना सकते हैं और फिर $ _SESSION ['param'] को एक चर के रूप में पास कर सकते हैं।

तो पेज.एफ़पी में:

<script src="my_progress_bar.js"></script>
<script>
$(function () {
    var percent = <?php echo $_SESSION['percent']; ?>;
    $.my_progress_bar(percent);
});
</script>

फिर my_progress_bar.js में:

(function ($) {
    $.my_progress_bar = function(percent) {
        $( "#progressbar" ).progressbar({
            value: percent
        });
    };
})(jQuery);



आप PHP के माध्यम से जावास्क्रिप्ट फ़ाइल का उत्पादन कर सकते हैं। कुछ भी नहीं कहता है कि जावास्क्रिप्ट फ़ाइल में .js विस्तार होना चाहिए। उदाहरण के लिए अपने एचटीएमएल में:

<script src='javascript.php'></script>

फिर आपकी स्क्रिप्ट फ़ाइल:

<?php header("Content-type: application/javascript"); ?>

$(function() {
    $( "#progressbar" ).progressbar({
        value: <?php echo $_SESSION['value'] ?>
    });

    // ... more javascript ...

यदि यह विशेष विधि कोई विकल्प नहीं है, तो आप अपने जावास्क्रिप्ट फ़ाइल में AJAX अनुरोध डाल सकते हैं, और सर्वर साइड स्क्रिप्ट से JSON के रूप में डेटा लौटाया जा सकता है।




यह कड़ाई से jQuery का उपयोग नहीं कर रहा है, लेकिन मुझे jQuery का उपयोग करने से यह विधि आसान हो गई है। यहां और कई चालाक लोगों को प्राप्त करने की शायद अंतहीन विधियां हैं, लेकिन सभी ने मेरे लिए काम नहीं किया है। हालांकि निम्नलिखित विधि हमेशा काम करती है और अगर मैं किसी और की मदद करता हूं तो मैं इसे पास कर रहा हूं।

तीन जावास्क्रिप्ट पुस्तकालयों की आवश्यकता है, createCookie , readCookie और eraseCookie । ये पुस्तकालय मेरी नहीं हैं लेकिन मैंने उन्हें लगभग 5 साल पहले उपयोग करना शुरू किया था और उनकी उत्पत्ति को नहीं पता था।

createCookie = function(name, value, days) {
if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    var expires = "; expires=" + date.toGMTString();
}
else var expires = "";

document.cookie = name + "=" + value + expires + "; path=/";
}

readCookie = function (name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') c = c.substring(1, c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
eraseCookie = function (name) {
   createCookie(name, "", -1);
}

उन्हें कॉल करने के लिए आपको सामान्य रूप से अपनी समर्थन लाइब्रेरी के हिस्से के रूप में एक छोटा PHP फ़ंक्शन बनाना होगा, जैसा कि निम्नानुसार है:

<?php
 function createjavaScriptCookie($sessionVarible) {
 $s =  "<script>";
 $s = $s.'createCookie('. '"'. $sessionVarible                 
 .'",'.'"'.$_SESSION[$sessionVarible].'"'. ',"1"'.')';
 $s = $s."</script>";
 echo $s;
}
?>

तो अब आप का उपयोग करने के लिए अब अपनी index.php फ़ाइल में शामिल होना है

$_SESSION["video_dir"] = "/video_dir/";
createjavaScriptCookie("video_dir");

अब अपने जावास्क्रिप्ट लाइब्रेरी.जेएस में आप निम्न कोड के साथ कुकी को पुनर्प्राप्त कर सकते हैं:

var videoPath = readCookie("video_dir") +'/'+ video_ID + '.mp4';

आशा है कि ये आपकी मदद करेगा।




$ _SESSION से सीधे आयात नहीं कर रहा है लेकिन इसे काम करने के लिए इसे करना है:

<?php
$phpVar = $_SESSION['var'];
?>

<script>
    var variableValue= '<?php echo $phpVar; ?>';
    var imported = document.createElement('script');
    imported.src = './your/path/to.js';
    document.head.appendChild(imported);
</script>

और to.js

$(document).ready(function(){
alert(variableValue);
// rest of js file



==परिवर्तनीय डेटा-प्रकार पर विचार किए बिना चेक समानता के लिए प्रयोग किया जाता है

===वैरिएबल वैल्यू * और ** डेटा-टाइप दोनों के लिए चेक समानता के लिए प्रयोग किया जाता है

उदाहरण

$a = 5

  1. if ($a == 5) - सच का मूल्यांकन करेंगे

  2. if ($a == '5') - सत्य का मूल्यांकन करेगा, क्योंकि यह दोनों मूल्य की तुलना करते समय PHP आंतरिक रूप से उस स्ट्रिंग मान को पूर्णांक में परिवर्तित करता है और फिर दोनों मानों की तुलना करता है

  3. if ($a === 5) - सच का मूल्यांकन करेंगे

  4. if ($a === '5') - गलत का मूल्यांकन करेगा, क्योंकि मान 5 है, लेकिन यह मान 5 पूर्णांक नहीं है।





php javascript jquery