Antworten auf deine Fragen:
Neues Thema erstellen

jQuery Zählschleife Array

S

Sal0mon

Guest

Ich mach mit jQuery und Ajax eine Datenbankabfrage und übergebe das dan als assoziatives Array. Das Ergebnis ist dieses:
Code:
[
{"text":"Text2","datum":"19.11.2011"},{"text":"Text2","datum":"19.11.2011"},{"text":"Text2","datum":"19.11.2011"},{"text":"Text2","datum":"19.11.2011"},{"text":"Text2","datum":"19.11.2011"},{"text":"Text2","datum":"19.11.2011"},{"text":"Text2","datum":"19.11.2011"},{"text":"Text2","datum":"19.11.2011"},{"text":"Text2","datum":"19.11.2011"},{"text":"Text2","datum":"19.11.2011"},{"text":"Text2","datum":"19.11.2011"},{"text":"Text2","datum":"19.11.2011"},{"text":"Text2","datum":"19.11.2011"},
{"text":"test","datum":"24.11.2011"}]
Das Ganze möchte ich mit einer Zählschleife ausgeben. Allerdings sollen doppelte Datumsangaben zusammengefasst werden.
Das ganze möchte ich in einer Tabelle ausgeben:
19.11.2011

  • Text 2
  • Text 2
  • usw
24.11.11

  • test
So in der Art ^^
Dazu hab ich diesen Code geschrieben:
PHP:
var j=0;
//^^das da wird vor der AJAX Funktion aufgerufen.
//vv das ist in der Ajax Funtion
test="<tr><td>"+data[0]['datum']+"</td><td><ul><li>"+data[0]['text']+"</li>"; //erster Tabelleneintrag
 for(var i=0;i<data.length;i++){   
    j=i+1;
    verg=data[j]['datum']; //Nachfolgedatum <<<Hier meckert Firebug
    ntext=data[j]['text']; //Nachfolgetext
    if(verg==data[i]['datum']){ //Vergleich
    test=test+"<li>"+ntext+"</li>"; //Neuer Listeneintrag
}
  else
{  
   test=test+"</ul></td></tr><tr><td>"+verg+"</td><td><ul><li>"+ntext+"</li>";   //Neue Zeile
}
                        
                    }
test=test+"</ul></td></tr></table>";
                    
                    
$("#tabelle").append(test); //Variable test an die Tabelle "tabelle" anfügen
Eigentlich soll der Nachfolger data[j] an stelle datum mit dem Vorgänger data an stelle datum verglichen werden und wenn es gleich ist soll der Text der Liste hinzugefügt werden. Wenn nicht wird eine neue Tabellenzeile eingefügt.
Allerdings gibt Firebug bei der variable j ein Fehler aus...

Code:
data[j] is undefined
verg=data[j]['datum'];
Wenn ich das ganze mit i teste klappts aber bei j gehts nicht.
Ich hab kein schimmer woran das liegt...
Hat wer ahnung woran das liegt?
Vlt ist es auch nur was simples und ich steh nur auf dem Schlauch...
Bin jetzt auch nicht der Experte was jQuery bzw JavaScript betrifft...mach das noch nicht so lange ^^
Würd mich sehr freuen wenn mir jemand helfen kann :)

mfg Salomon
 

S

Sal0mon

Guest

AW: jQuery Zählschleife Array

ah ich danke dir für deine schnelle antwort :)
Daran lags...man da wär ich ja wohl nie drauf gekommen ^^
Jetzt gehts ums Finetunig :)
 
S

Sal0mon

Guest

AW: jQuery Zählschleife Array

Ich hab nochmal ne frage :)
PHP:
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('osz-azubi');
$datum=$_POST['datum'];
$text=$_POST['text'];

$ida=mysql_query("SELECT id FROM eintrag WHERE datum='".$datum."'");
    $ids=mysql_fetch_object($ida);
    if($ids['id']==""){
        mysql_query("INSERT INTO `eintrag`(`datum`) VALUES ('".$datum."')");
        $idle=mysql_query("SELECT id FROM `eintrag` WHERE datum='".$datum."'");
        $idler=mysql_fetch_array($idle);
        mysql_query("INSERT INTO  eintraege (ein_id,text) VALUES ('{$idler['id']}','{$text}')");
    }
    if($ids['id']!=""){
        mysql_query("INSERT INTO eintraege(ein_id,text) VALUES ('{$ids['id']}','{$text}')");
    }   
    
?>
Das Script soll durch Ajax zwei variablen(Datum und Text) erhalten und diese in die Datenbank einfügen. Dabei soll geprüft werden ob das Datum schon vorhanden ist. Wenn nicht soll ein neuer eintrag in der Tabelle "eintrag" mit der variable Datum erstellt werden. Und der Text in der Tabelle "eintraege".
Zum verbinden nutz ich die Variable id(eintrag) und ein_id(eintraege).
Wenn das Datum vorhanden ist soll nur der Text mit passender ein_id gespeichert werden. Allerdings scheint er immer nur ein bzw kein eintrag pro Datum hinzubekommen. Bevor ich das script ausgelagert habe hat alles geklappt...jetzt allerdings nicht mehr...
Datumseingabe erfolgt über drei <select>boxen...

PHP:
     $("#druck").click(function(){
            datu=$("#tag").val()+$("#monat").val()+$("#jahr").val();
            texti=$("#text").val();
            $.ajax({
                type: "POST",
                url: "eingeben.php",
            data: "datum="+datu+"&text="+texti,
                dataType: "json"
        });
        });

Firebug gibt auch eine Fehlermeldung aus allerdings ist die sehr schnell wieder weg weil er die tabelle neulädt..
 

Duddle

Posting-Frequenz: 14µHz

AW: jQuery Zählschleife Array

Bevor ich zum eigentlichen Problemchen komme, nur ein paar Anmerkungen:
Dein PHP-Code zeigt einige Schwachstellen auf. Abgesehen von den unverständlichen Variablennamen, dem wechselnden Schreib-Stil (einmal mit `Backticks`, sonst ohne, dreimal beendest du den String zum Variablen-Einsetzen, zweimal nicht, zweimal hast du Leerzeichen zwischen Tabellename und öffnender Klammer, sonst nicht) und dem Auslassen von else (obwohl die Logik exakt das ausdrücken soll), fängst du auch keinerlei Fehlerquellen ab (weder bei den SQL-Anfragen, noch bei den $_POSTs). Ausserdem schreit der Code nach einer fehlerhaft entworfenen Datenbank.

Um dein Problem zu finden solltest du an jeder passenden Stelle Ausgaben machen: was genau übergibt der AJAX-Aufruf? Was kommt im Script an? Wie sehen die SQL-Anfragen vor dem Absenden aus? Wie sehen die Ergebnismengen aus?
Das kannst du dir alles anzeigen lassen und ist bei diesem winzigen Code auch kein Problem. Wenn du nicht nachvollziehen kannst, wo dein Code von den Erwartungen abweicht, kannst du es nicht lösen.


Duddle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben