'Call to undefined function' bei verwendung von AJAX

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 'Call to undefined function' bei verwendung von AJAX

    ob das nun ein PHP-Problem, ausgelöst durch AJAX oder andersrum ist, weiss ich nicht. falls ich im php-forum besser aufgeräumt wäre, kann ein mod das thema sicher verschieben
    ...jedenfalls check ich grad irgendwas nicht oder seh den wald vor lauter bäumen nicht

    unser cms wird gerade einem rundum-update unterzogen, in folge dessen auch das admin-backend großteils auf AJAX umgestellt wird (jaaa hört sich doof an, php wird natürlich weiterhin verwendet :P).
    ansich kein großer aufwand, zwei-drei kleine javascript-funktionen und die ganze sache läuft. und sie läuft in der tat.

    allerdings mekert php nun an einer angeblich nicht gefundenen funktion herum:
    Beim Start des backends wird ein begrüßungsildschirm angezeigt, klickt man dann auf einen der bereiche z.b. Jobs dann wird die entsprechende datei per ajax im hintergrund geladen und sollte angezeigt werden. das passiert allerdings nicht, da oben genannter fatal error auftaucht und die scriptausführung abbricht. wenn man die angeforderte datei aber per get-parameter in das backend einbindet, dann funktioniert alles einwandfrei. wenn dann zur gleichen zeit die selbe datei zusätzlich per ajax geholt werden soll -> 'call to undefined...'
    eigentlich müsste man ja denken, dass spätestens dann die benötigte funktion eingebunden sein müsste.stimmt nur leider nicht
    weiss jemand eine lösung dazu oder wie ajax beim laden einer seite vorgeht?

    google hat mir auch keinen ratschlag, bzw. liefert nur unpassende ergebnisse.

    PS: die funktion existiert, der name ist richtig, etc. zudem wird kein ausgabepuffer o.ä. verwendet.


    danke im vorraus und grüße
    Breezzer

  • #2
    Ohne Beispielcode wird das nix.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Die Datei, die per AJAX ausgeführt wird, kennt die Funktionen, die in der aufrufenden Datei definiert wurden nicht (woher auch). Du musst die Klasse bzw. Funktionsbibliothek bzw. was auch immer in der entsprechenden Datei nocheinmal einbinden.
      ich glaube

      Kommentar


      • #4
        weiss jemand eine lösung dazu oder wie ajax beim laden einer seite vorgeht?
        Verständnisfehler: Ajax geht beim laden nicht irgendwie vor. Die AJAX-Request sind ganz normale HTTP Request. Dein Fehler liegt also in deinem PHP Skript, nimm dir die URL und debug deine PHP Skripte.
        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

        Kommentar


        • #5
          oh, den habe ich wohl nur gedanklich angefügt...sorry

          index.php:
          (auf das wichtigste reduziert und in etwas abgewandelter form, damit man das problem [hoffentlich] schneller erkennt )
          PHP-Code:
          <?php require("function.php"); ?>
          <html>
          <head>
          <script language="JavaScript" type="text/javascript">
              // <![CDATA[
              var XMLHTTP = null;
              
              if (window.XMLHttpRequest) {
                XMLHTTP = new XMLHttpRequest();
              } else if (window.ActiveXObject) {
                try {
                  XMLHTTP = 
                    new ActiveXObject("Msxml2.XMLHTTP");
                } catch (ex) {
                  try {
                    XMLHTTP = 
                     new ActiveXObject("Microsoft.XMLHTTP");
                  } catch (ex) {
                  }
                }
              }
              
              function DatenAusgeben() {
                if (XMLHTTP.readyState == 4) {
                  var d = document.getElementById("ajax");
                  d.innerHTML += XMLHTTP.responseText;
                }
              }
              
              function jobs() {
                XMLHTTP.open("GET", "../modules/jobs/display.php");
                XMLHTTP.onreadystatechange = DatenAusgeben;
                XMLHTTP.send(null);
              }
              // ]]>

          </script>
          </head>
          <body>

          <a href="javascript:jobs();">Jobs anzeigen</a>
          <div id="ajax"></div>
          <div id="php">
          <?php require("../modules/jobs/display.php"); ?>
          </div>

          </body>
          </html>
          function.php:
          PHP-Code:
          <?php
          function eine_funktion () 
          { print(
          'hallo forum'); }
          ?>
          display.php :
          PHP-Code:
          <?php
          eine_funktion
          ();
          ?>

          so....wenn ich nun auf den Link 'Jobs anzeigen' klicke, dann kommt eben dieser fehler.
          die per php eingebundene funktion klappt aber, so wie es sein sollte.
          wenn ich die funktion direkt in der display.php require, dann geht die ganze sache auch per ajax.

          Kommentar


          • #6
            Original geschrieben von ministry
            Die Datei, die per AJAX ausgeführt wird, kennt die Funktionen, die in der aufrufenden Datei definiert wurden nicht (woher auch). Du musst die Klasse bzw. Funktionsbibliothek bzw. was auch immer in der entsprechenden Datei nocheinmal einbinden.
            ouch...na klar, ich idiot -.-

            dann sag ich mal danke...das war dann wohl schon des pudels kern

            Edit:
            wie gesagt....den wald vor lauter bäumen nicht gesehn
            Zuletzt geändert von Breezzer; 07.01.2008, 16:35.

            Kommentar

            Lädt...
            X