簡體   English   中英

如何在Ajax函數中調用medoo 1.5?

[英]How to call medoo 1.5 inside a function with ajax?

這里的第一個問題。 我想用ajax調用php函數。 在函數內部,我有一個來自命名空間上的庫的類。

我一直在php中使用0.9版本的medoo ,並且一切正常。 我還對ajax調用使用了相同的功能。

在我的function.php文件中,我有:

//if called from js with ajax I use a var in the link to know for ex. variable_from_js=1
if(isset($_GET['variable_from_js']){
  $response = my_function();
  echo $response;//i catch the response with js then
  exit;
}

//my function
function my_function(){
 $a = new Medoo(DB_NAME);//DB_NAME is a global
 ...
}

Medoo正在使用版本大於1.2的名稱空間以及許多其他庫。 當我直接調用my_function()時,我使用:

require 'Medoo.php';
require 'function.php';
use Medoo\Medoo;
echo my_function();

一切都很好。 現在,如果我調用相同的ajax調用,則會收到內部服務器錯誤,因為找不到類Medoo。

我不能使用代碼:

use Medoo\Medoo;

由於這些內容的局部范圍,在if語句內部或函數內部。 我應該在全球范圍內稱呼它。 但是我正在使用ajax調用。

我應該在function.php內再次寫“ use”語句還是應該在其他地方做? 有沒有解決方案,或者唯一的解決方案是在調用類(內部函數)時擺脫“ use”語句並使用完整的名稱空間路徑?

您只應在代碼中調用一次Medoo,因此在php文件的頂部

require 'Medoo.php';
require 'function.php';
use Medoo\Medoo;
$db = new Medoo(DB_NAME);

然后將medoo類傳遞給您的函數,例如

echo my_function($db);

在您的函數中,您可以使用medoo,例如

function my_function($db){
    $value = $db->get('...','...','...');
    return $value;
}

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM