Sir Quicksand: AJAX nicht in einer Klasse möglich????

Hallo Leute,

ich benutze sajax um AJAX Funktionalitäten zu nutzen. Auf meiner Seite benutze ich viele unterschiedlichen Klassen. Nun wollte ich in einer reingelinkten Klasse Ajax nutzen:

Beispiel

Hauptteil

<?php
include("class_test.php");

$test = new class_test();

$test->verwalten();
?>

#######################################################

Klasse

<?php
class class_test
{
   function class_test()
   {
   }

function verwalten()
   {
      require("Sajax.php");

sajax_init();
      sajax_export("ajax_wurst_schritt2"); // list of functions to export
      sajax_handle_client_request(); // serve client instances
      $sajax_debug_mode = 1;

$javascript = $this->javascript();
      echo "<script language='JavaScript1.2'>";
      sajax_show_javascript();
      echo "</script>\n\n";
      echo $javascript;

echo "<span id=wurst>";
      echo "hallo";
      echo "</span>";
      echo "<input type=button onclick="ajax_wurst_schritt1('wurst');"";
   }

function ajax_wurst_schritt2($gibmir)
   {
      $result = $gibmir . " ist lecker";

return $result;
   }

function javascript()
   {
      $daten_script .= "<script>";
      $daten_script .= "function ajax_wurst_schritt1(gibmir)";
      $daten_script .= "{";
      $daten_script .= "x_ajax_wurst_schritt2(gibmir, ajax_wurst_schritt3);";
      $daten_script .= "}";
      $daten_script .= "function ajax_wurst_schritt3(result)";
      $daten_script .= "{";
      $daten_script .= "document.getElementById('wurst').innerHTML = result";
      $daten_script .= "}";
      $daten_script .= "</script>";

return $daten_script;
   }
}
?>

Leider funktioniert das nicht. Wenn ich nun die Klasse als eigenständigen Code laufen lasse, funktioniert alles hervorragend:
Code:

<?php
      require("Sajax.php");

sajax_init();
      sajax_export("ajax_wurst_schritt2"); // list of functions to export
      sajax_handle_client_request(); // serve client instances
      $sajax_debug_mode = 1;

$javascript = javascript();
      echo "<script language='JavaScript1.2'>";
      sajax_show_javascript();
      echo "</script>\n\n";
      echo $javascript;

echo "<span id=wurst>";
      echo "hallo";
      echo "</span>";
      echo "<input type=button onclick="ajax_wurst_schritt1('wurst');"";

function ajax_wurst_schritt2($gibmir)
   {
      $result = $gibmir . " ist lecker";

return $result;
   }

function javascript()
   {
      $daten_script .= "<script>";
      $daten_script .= "function ajax_wurst_schritt1(gibmir)";
      $daten_script .= "{";
      $daten_script .= "x_ajax_wurst_schritt2(gibmir, ajax_wurst_schritt3);";
      $daten_script .= "}";
      $daten_script .= "function ajax_wurst_schritt3(result)";
      $daten_script .= "{";
      $daten_script .= "document.getElementById('wurst').innerHTML = result";
      $daten_script .= "}";
      $daten_script .= "</script>";

return $daten_script;
   }
?>

Habe ich was vergessen oder übersehen?
Funktioniert AJAX, bzw. SAJAX, nicht in einer Klasse?

  1. Hellihello Schnellsand,

    warum soviel geechoten Quelltext? Interssant ist doch nur, was am Ende im HTML-Quelltext steht. Wo ist Dein Problem, würde ich jetzt fragen.

    Funktioniert AJAX, bzw. SAJAX, nicht in einer Klasse?

    In welcher Klasse? Ajax heißt eigentlich, dass der Browser per Javascript einen HTTPRequest an den Server schickt. Dem Javascript bleibt es überlassen, die Antwort dann auszuwerten.

    Der Server bekommt davon nichts mit würde ich sagen. Der spuckt nur Text aus in der Regel (XML oder html). Dem Javascript ist es egal, ob sein Text via PHP erstellt wurde oder von Hand in einem Editor der Wahl des Autors.

    "Klassen" haben damit aus meiner Sicht rein garnichts zu tun.

    Dank und Gruß,

    frankx