Ajax-Daten werden nicht übertragen

BadBoy227

Mitglied
Hi Leute,

ich arbeite zur Zeit an einem Script was mich jetzt aber vor Probleme stellt...
Das ganze möchte einfach nicht die Daten an das Backend übertragen, bzw. tritt einfach nicht in Kontakt mit diesem. Bei einem ähnlichen Script funktioniert es Problemlos ich habe auch schon die Javascript Teile kopiert und abgeändert aber es passiert einfach nichts. Ich hoffe ihr könnt mir weiterhelfen und seht vl den Fehler, welchen ich nicht sehe XD
Code in der php Anwendung:
PHP:
$id=$_GET["ident"];

$prot_array = mysql_query("SELECT * FROM `protokoll` WHERE `id`='$id'");
$protokoll = mysql_fetch_assoc($prot_array);

$user_abend_array = mysql_query("SELECT * FROM `user_abend` WHERE `prot_id`='$id'");
$user_abend = mysql_fetch_assoc($user_abend_array);

$userid= $protokoll['leader'];

//Verantwortlichen auslesen


$vera_array = mysql_query("SELECT * FROM `user` WHERE `id`='$protokoll[leader]'");
$vera = mysql_fetch_assoc($vera_array);

$verantwortlicher= $vera[vor].' '.$vera[nach];

//Verfasser auslesen


$ver_array = mysql_query("SELECT * FROM `user` WHERE `id`='$protokoll[verfasser]'");
$ver = mysql_fetch_assoc($ver_array);

$verfasser= $ver[vor].' '.$ver[nach];

$user_array = mysql_query("SELECT * FROM `user` WHERE `id`='$userid'");
$user = mysql_fetch_assoc($user_array);

?>
<h2>Protokoll vom <?echo"$protokoll[datum]";?> </h2>
<table>
       <tr>
           <td>
               Protokoll ID: <?echo"$protokoll[id]";?>
           </td>
           <td width="50px"></td>
           <td>
               Verantwortlicher: <?echo"$user[vor] $user[nach]";?>
           </td>
           <td width="50px"></td>
           <td>
               Aufgabe: <?echo"$protokoll[aufgabe]";?>
           </td>
       </tr>
       <tr height="50px">
       </tr>
</table>

<div name="outuser" id="outuser">
<?

$result = mysql_query("SELECT * FROM `user_abend` WHERE `prot_id`='$id'");
$i=1;
while($row = mysql_fetch_assoc($result))
{
    print'
          <table>
                 <tr>
                     <td width=250px>
                         Name:'.$row[name].'
                     </td>
                     <td width=250px>
                         Aufgabe: '.$row[aufgabe].'
                     </td>
                     <td>
                         Erledigt:';
                         if($row[erledigt]==1)
                         {
                             echo"Ja";
                         }
                         else
                         {
                             echo"Nein";
                         }
          print'
                     </td>
                 </tr>
                 <tr>
                     <td>
                         Beginn:'.$row[start_std].':'.$row[start_min].'
                     </td>
                     <td>
                         Ende:'.$row[end_std].':'.$row[end_min].'
                     </td>
                     <td>
                         Dauer:'.$row[dauer].' min
                     </td>
                 </tr>
                 </table>';}
                 print'</div>
                 <table>
                 <hr>
                 <tr>
                 <td>';
$sql="SELECT * FROM `user` ORDER BY nach ASC";
$name_choos=mysql_query($sql);

$options="";

while ($name_choos2=mysql_fetch_array($name_choos))
{

    $id=$name_choos2['id'];
    $vorname=$name_choos2['vor'];
    $nachname=$name_choos2['nach'];
    $options.="<OPTION VALUE=\"$id\">$vorname $nachname</option>";
}
?>


           <select id="benutzer" name="benutzer">
           <option value="0">Namen auswählen</option>
                       <?=$options?>
                </select>
           <select name="aufgabe" id="aufgabe">
                   <option value="">Aufgabe</option>
                   <option value="Halle kehren">Halle kehren</option>
           </select>

           <select id="anfang_std" name="anfang_std">
           <?
           $i=01;
           while($i<=24)
                        {

                        if($i == 18)
                        {
                            echo"<option value=".$i." selected>".$i."</option>";
                        }
                        else
                        {
                            echo"<option value=".$i.">".$i."</option>";
                        }
                        $i++;
                        }
           ?>
           </select>
           </td>
           <td>
           <select id="anfang_min" name="anfang_min">
                   <option value="00">00</option>
                   <option value="1">01</option>
                   <option value="2">02</option>
                   <option value="3">03</option>
                   <option value="4">04</option>
                   <option value="5">05</option>
                   <option value="6">06</option>
                   <option value="7">07</option>
                   <option value="8">08</option>
                   <option value="9">09</option>

           <?
           $i=10;
           while($i<=59)
                        {
                        echo"<option value=".$i.">".$i."</option>";
                        $i++;
                        }
           ?>
           </select> -
           <select id="ende_std" name="ende_std">
           <?
           $i=01;
           while($i<=24)
                        {

                        if($i == 20)
                        {
                            echo"<option value=".$i." selected>".$i."</option>";
                        }
                        else
                        {
                            echo"<option value=".$i.">".$i."</option>";
                        }
                        $i++;
                        }
           ?>
           </select>
           </td>
           <td>
           <select id="ende_min" name="ende_min">
                   <option value="00">00</option>
                   <option value="1">01</option>
                   <option value="2">02</option>
                   <option value="3">03</option>
                   <option value="4">04</option>
                   <option value="5">05</option>
                   <option value="6">06</option>
                   <option value="7">07</option>
                   <option value="8">08</option>
                   <option value="9">09</option>

           <?
           $i=10;
           while($i<=59)
                        {
                        echo"<option value=".$i.">".$i."</option>";
                        $i++;
                        }
           ?>
           </select>
           Ja<input type="radio" name="done" id="done" value="1" CHECKED>
           Nein<input type="radio" name="done" id="done" value="0">
           <?echo" <input type='hidden' name='identi' id='identi' value='$protokoll[id]'>";?>

           <input type="button" onClick="adding()" value="In Liste eintragen">

Die id wird von einer anderen Seite übertragen, dann werden verschiedene Daten ausgelesen und in der <div> werden die User ausgegeben die an dem Abend gearbeitet haben. Wenn man auf den Button klickt, passiert nichts nun zu dem Javascript Teil:
PHP:
function adding(){

    var identi =$F('identi');
    var benutzer = $F('benutzer');
    var task = $F('task');
    var as = $F('anfang_std');
    var am = $F('anfang_min');
    var es = $F('ende_std');
    var em =$F('ende_min');
    var done =$F('done');


    var opt = { method:'post', postBody: 'aktion=adding_user&id='+identi+'&benutzer='+benutzer+'&task='+task+'&anfang_std='+as+'&anfang_min='+am+'&ende_std='+es+'&ende_min='+em+'&done='+done };
    new Ajax.Updater( {success:'outuser'}, 'includes/backend.php', opt);
}
Ich denke das hier der Fehler stecken wird, da überhaupt keine Antwort vom backend kommt, welches so aussieht:
PHP:
else if ($_POST['aktion'] == "adding_user")
{
 $id=$_POST['identi'];

 $date="SELECT * FROM `protokoll` WHERE `id`='$id'";
 $date_choos=mysql_query($date);

 $date= $date_choos['datum'];

 $benutzer=$_POST['benutzer'];

 $sql="SELECT * FROM `user` WHERE `id`='$benutzer'";
 $name_choos=mysql_query($sql);

 $name= $name_choos['nach'];

 $task=$_POST['task'];



 $as=$_POST['anfang_std'];
 $am=$_POST['anfang_min'];
 $es=$_POST['ende_std'];
 $em=$_POST['ende_min'];

 $done=$_POST['done'];

 $std=$es-$as;
 $stdmin=$std*60;

 $min=$em-$am;
 $duration=$stdmin+$min;

 $protokoll_eintrag = mysql_query("INSERT INTO `ffw`.`user_abend` (`user_id` ,`aufgabe` ,`name` ,`start_std` ,`end_std` ,`start_min` ,`end_min` ,`dauer` ,`erledigt` ,`datum` ,`prot_id`) VALUES ('$benutzer','$task', '$name', '$as', '$es','$am','$em', '$duration', '$done', '$date', '$id');");



$result = mysql_query("SELECT * FROM `user_abend` WHERE `prot_id`='$id'");
$i=1;
while($row = mysql_fetch_assoc($result))
{
    print'
          <table>
                 <tr>
                     <td width=250px>
                         Name:'.$row[name].'
                     </td>
                     <td width=250px>
                         Aufgabe: '.$row[aufgabe].'
                     </td>
                     <td>
                         Erledigt:';
                         if($row[erledigt]==1)
                         {
                             echo"Ja";
                         }
                         else
                         {
                             echo"Nein";
                         }
          print'
                     </td>
                 </tr>
                 <tr>
                     <td>
                         Beginn:'.$row[start_std].':'.$row[start_min].'
                     </td>
                     <td>
                         Ende:'.$row[end_std].':'.$row[end_min].'
                     </td>
                     <td>
                         Dauer:'.$row[dauer].' min
                     </td>
                 </tr>
                 </table>';
}}

Die Ausgabe ist noch nicht ganz angepasst, aber trotzdem sollten ja die Daten in die Datenbank übertragen werden. Firebug spuckt mir auch nichts nützliches aus.

Ich danke euch jetzt schonmal für das lesen der Codes. Ich hoffe mir kann jem. helfen, da ich einfach nicht mehr weiter weiß.

Viele liebe Grüße
BadBoy
 
Moin,

Code:
$id=$_POST['identi'];

Du sendest keine Variable $identi, die Variable heisst $id
Code:
aktion=adding_user&id='+identi........

Lasse dir am Besten in backend.php mysql-Fehler ausgeben und aktiviere das error_reporting, dann kannst du bspw. per Firebug(Netzwerk-Tab) nachsehen, welche Fehler auftreten, falls welche auftreten.
 
Hi,
dank dir für die schnelle Antwort, an der Variablen liegt es nicht.
Ich habe jetzt nochmal in firebug geschaut. Das backend läuft nocht Fehlerfrei, aber es liegt mehr daran, dass der Button nichts auslöst, zumindest zeigt Firebug keine Anfrage an.... Ich habe es auch schon mit <a href="java......"</a> versucht geht auch nicht :S
Die Funktion wird eigentlich eingefügt, auch habe ich schon versucht diese direkt einzuspeißen, hat aber auch nichts gebracht :(
Woran kann es also liegen, dass er die Funktion nicht findet oder sie sich nicht angesprochen fühlt :S

Gruß
BadBoy
 
Das lässt sich kaum sagen ohne das Live zu sehen....Firebug müsste zumindest einen JS-Fehler melden. Wenn er das nicht tut, gibt es nur eine logische Erklärung:
Du hast JS deaktiviert :)
 
hehe schön wäres, bei einer anderen Anwendung geht es ja ^^ und da spuckt mir firebug auch etwas aus. Ich werde nachher mal schauen, dass ich den Teil online stelle, aber es ist komisch, dass ausgerechnet dieser Teil nicht funktioniert, alle anderen Ajax Anwendungen gehen auch :S
 
So ich hab mich nochmal hingesetzt und habe es doch noch hinbekommen das es läuft. Fragt nicht wie aber es geht jetzt zumindest. Ich habe einfach das komplette Dokument neu geschrieben und auch den Javascript teil neu überarbeitet und andere Variablen Namen verteilt. Das scheint wohl geholfen zuhaben.

Wenn ich das neue Script hochladen soll um einen Vergleich zu ziehen, hier bitte einfach posten

Danke für die Hilfe

liebe Grüße
BadBoy
 

Neue Beiträge

Zurück