Thorsten: PHP / JS / XAJAX

Beitrag lesen

Hallo,

ich hoffe ihr könnt mir in meiner verzweiflung helfen.

Ich habe einfaches Formular was ich mittels AJAX/XAJAX erweitern möchte sobald jemand die in einer Selectbox den Wert Einzugsermächtigung wählt.

In meiner Testdatei sieht das alles wunderbar aus und funktioniert auch so.

Testdatei:
<?php
error_reporting(E_ALL);
header('Content-type: text/html; charset=utf-8');
 include("KLassen/xajax/xajax_core/xajax.inc.php");
 $xajax = new xajax();
 $xajax->registerFunction("onSelect");
 function onSelect($sSelect, $sDestination){
  $objResponse = new xajaxResponse();
  if($sSelect == 3){
   $formular = file_get_contents('Templates/bankdaten.php');
   $objResponse->assign($sDestination, 'innerHTML', $formular);
  }
  else {
   $objResponse->assign($sDestination, 'innerHTML', $formular = '');
  }

return $objResponse;
 }
 //$xajax->setRequestURI("http://localhost/ivently/test.php");
 $xajax->processRequest();
 $xajax->printJavascript('Klassen/xajax');
   include('Config/config.php');
   require_once('Klassen/db_class.php');
   $db = new db($schema);
   $zahlungsart = $db->getmatrix('SELECT zahlungsart, zahlungsart_id FROM zahlungsart');

echo "<select name='zahlungsart' id='input_select' onchange="xajax_onSelect(xajax.$('input_select').value, 'select_output'); return false;" >";

foreach ($zahlungsart AS $data)
     {
      if (isset($fehler))
      {
       if ($_POST["zahlungsart"] == $data["zahlungsart_id"])
       {
        $check = "selected='selected'";
       }
       else
       {
        $check ="";
       }
      }
      echo "<option ";
      if (isset($check))
      {
       echo $check;
      }
      echo " value="".$data["zahlungsart_id"]."">".$data["zahlungsart"]."</option>";
     }
    echo "</select>";
    ?>
<div id='select_output' ></div>

Wenn ich diese jetzt in mein projekt mit einbauen möchte geht es leider nicht.

Der Controller sieht so aus: veranstalter.php
<?php
if ($_GET['a'] == 'show')
{
 //Xajax Objekt anlegen und Funktionen registrieren.
 include("KLassen/xajax/xajax_core/xajax.inc.php");
 $xajax = new xajax();
 $xajax->registerFunction("onSelect");
 function onSelect($sSelect, $sDestination)
 {
     $objResponse = new xajaxResponse();

$objResponse->assign($sDestination, 'innerHTML', 'You selected: ' . $sSelect);

return $objResponse;
 }
 //$xajax->setRequestURI("http://localhost/ivently/Templates/veranstalter_anmeldung.php");
 $xajax->processRequest();
 //$xajax->printJavascript('Klassen/xajax');

//Ausgabe starten
 $out = new op();
 $out->xajax = $xajax;
 $out->reg_output('divcontent.html');
 $out->reg_output('veranstalter_anmeldung.php');
 $out->reg_output('divende.html');
 $out->output();
}
?>
In der Klasse op() werden alle Datein includet die ausgegeben werden sollen.
Die Selectbox in der Datei veranstalter_anmeldung.php schaut so aus:
Stark verkürzt.
<?php
   $db = new db($this->schema);
   $zahlungsart = $db->getmatrix('SELECT zahlungsart, zahlungsart_id FROM zahlungsart');
   echo "<select name='zahlungsart' id='input_select' onchange="xajax_onSelect(xajax.$('input_select').value, 'select_output'); return false;" >";

foreach ($zahlungsart AS $data)
    {
     if (isset($fehler))
     {
      if ($_POST["zahlungsart"] == $data["zahlungsart_id"])
      {
       $check = "selected='selected'";
      }
      else
      {
       $check ="";
      }
     }
     echo "<option ";
     if (isset($check))
     {
      echo $check;
     }
     echo " value='".$data["zahlungsart"]."'>".$data["zahlungsart"]."</option>";
    }
   echo "</select>";
   ?>
<div id='select_output'></div>

value und 'select_output' soll an die funktion onSelect übergeben werden.
Da entscheide ich dann was angezeigt wird und gebe dieses dann wieder zurück.

Es wird aber nur select_output übergeben value nicht.

Warum ? In Der Testdatei schaut es genau so aus und da funktioniert es wunderbar.

Ich bitte um Hilfe bin hier echt am verzweifeln!

P.s. Kann man hier kein Code formatieren? Würde die lesbarkeit der Skriptteile wesendlich verbessern?