Hi,
leider ich für das folgende Problem keiner Lösung nahe.
In meinem Syntax-Plugin rendere ich in meiner Helper-Klasse einen Link um eine jQuery-Funktion aufzurufen um von dort in meinen PHP-Code zurückzuspringen um einen Datensatz in eine Firebird-Datenbank zu schreiben.
$url = $_SERVER['HTTP_ORIGIN'].'/dokuwiki/lib/plugins/firebirddata/socketCall.rq.php';
$oDB = json_encode($this->firebird);
return "<a href='#' onclick=\"jQuery.ajax({
url: '$url',
data: {
action: '$action',
value: '$val',
adress: '$adress',
var1: '$table',
var2: '$ID',
port: $port
},
success: function(msg){
alert(msg);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
},
}); return true;\">";
In meinem request-file socketCall.rq.php möchte ich eigentlich nur auf die bereits vorher geladenen Funktionen aus meiner Helper-Klasse zugreifen, bekomme aber einen Fehler:
if ($action == "write_to_database"){
$var1 = $_REQUEST["var1"];
$var2 = $_REQUEST["var2"];
$oHelper = new Helper_Plugin_FirebirdData();
//$oHelper = loadHelper('firebirddata', $showmsg = true);
//$oHelper = plugin_load('helper', 'firebirddata');
$firebird = $oHelper->firebird;
echo 'Jeppo';
Ich würde das "echo" bekommen, sobald ich die Variable $oHelper nicht initialisieren und die Variable $firebird nicht verwenden würde.
Ich dachte, dass meine Helper-Klasse nach dem Aufruf nach wie vor erreichbar ist, aber dem scheint wohl nicht so. Nicht einmal ein neues Laden der Klasse über plugin_load() würde helfen, da nicht mal DOKU_INC mehr definiert ist.
Was mach ich denn falsch? Wie kann ich auf meine Klasse wieder zugreifen, nachdem ich meine jQuery-Funktion aufgerufen habe?
Vielen Dank schon mal im Voraus!