2016-01-20 27 views
0

我有PHP函數來檢查,如果在我的數據庫,我用class::checkThis($my_entry);JavaScript變量

在我的腳本使用JavaScript來我選擇的文件夾中確定的名存在的條目,那麼$ my_entry應該是這個樣子:

(正常是由PHP決定,以粗體顯示的部分是什麼是JavaScript的決定)

C:/庫/用戶/ apatik/文件夾1

正如你猜我無法找到一個工作方式混合起來放入系統的語言,我真的沒有在JavaScript任何經驗,但要弄清楚這一點。

PHP代碼返回路徑的第一部分是簡單$_SESSION['cwd'].'/'並返回選定文件夾的名字是data_name,由var data_name = $(this).attr('data-name');

確定是否有一種方式來獲得類似if (class::checkThis($_SESSION['cwd'].'/'.data_name) == true) JavaScript變量?

沒有我到目前爲止嘗試過的工作,我有麻煩尋找替代品。

感謝您的幫助

+0

我假設你的腳本在網頁上運行?或者你在做節點或什麼? – Taplar

+0

確實腳本運行在網頁上(實際上是wamp),我從來沒有聽說過節點壽。 – apatik

+3

然後,您將不得不通過表單提交,Ajax請求或常規頁面導航作爲關鍵值對,將值作爲請求的一部分提供給腳本。 – Taplar

回答

0

您需要發出AJAX請求才能完成此操作。正常情況下,您將加載頁面,除了動態部分。然後,你可以填充動態部分(我已經說明它作爲#content這裏)基於AJAX調用的結果:

var data_name = $(this).attr('data-name'); 

... 

$.ajax('http://example.com/my_php_script.php?data_name=' + data_name) 
    .done(function(data){ 
     // "data" is the resulting output of the PHP script 
     $('#content').append(data); 
}); 

注:上述解決方案使用jQuery

然後,在你my_php_script.php,你可以做這樣的事情:

if (class::checkThis($_SESSION['cwd'] . '/' . $_GET['data_name']) == true) { 
    ... 
} 
+0

感謝您的回答,它似乎符合@塔特拉的建議,我會嘗試一下並更新! – apatik

0

阿賈克斯jQuery是您的最佳解決方案。 這一個使用POST方法與事件,僅供參考......

<a href="#" class="anchor" data-name="folder1">Am I exist?</a> 
<a href="#" class="anchor" data-name="folder2">Am I exist too?</a> 

$('.anchor').click(function(){ 

    var data_name = "name=" + $(this).attr('data-name'); 
    $.ajax({ 
     type: "POST", 
     url: "is_exist.php", 
     data: data_name, 
     success: function (data) { 
        alert(data.response); 
     } 
    }); 
}; 

is_exist.php

if(isset($_POST['name'])){ 
    $data['response'] = class::checkThis($_SESSION['cwd'].'/'.$_POST['name']) == true ? "exist" : "buried"; 
    echo json_encode($data); 

}