AJAX Formular einblenden

Bei diesem JSON wäre das z.B.

Javascript:
data[0].autor
//oder
data[0]['autor']

Dein JSON stellt ein Array mit einem einzigen Eintrag dar und der Eintrag ist ein Objekt mit diversen Eigenschaften. Ich nehme an bei diesem Beispiel lieferte deine Abfrage nur ein Ergebnis. Ansonsten wäre das Array wohl größer.

Edit: Ich sehe aber gerade, dass dein JSON irgendwie alle Daten doppelt enthält. Sieht man vorallem wenn man es formattiert

Javascript:
[
    {
        "0": "3",
        "id": "3",
        "1": "Fässchentrinken 2002",
        "name": "Fässchentrinken 2002",
        "2": "1309726822_faesschentrinken_2002",
        "ordner": "1309726822_faesschentrinken_2002",
        "3": "130972 6822",
        "erstellt_am": "1309726822",
        "4": "1050530400",
        "stattgefunden_am": "1050530400",
        "5": "Daniel Klinger",
        "autor": "Daniel Klinger",
        "6": "0",
        "online": "0"
    }
]
 
Geschafft! Endlich funktioniert es so wie es soll! ID wird ausgelesen, Daten aus der DB geholt und das Formular gefüllt und nach dem Abschicken die neuen Werte in die DB geschrieben!

Vielen dank für deine Hilfe ohne dich wäre ich da nicht durchgestiegen. Die Gedankengände sind da doch etwas anders als bei PHP. Muss mich noch mehr damit befassen. Aber zumindest bekomme ich nun die Lese und schreibvorgänge auf die Reihe. (Für mehr brauche ich es Aktuell nicht).

Warum alle Daten doppent enthalten waren weis ich nicht. Aber ist auch nicht so schlimm, da ich nun eh mein eigenes Array übergebe da ich einige DB-Einträge voher mit PHP bearbeite!

Nochmals Danke!

Gruß
Daniel_sun

EDIT:

Zu fürh gefreut. Ein kleiner patzer noch.

HTML:
                                        	                                            <tr>
                                                <td></td>
                                                <td>F&auml;sschentrinken 2001</td>
                                                <td>0</td>
                                                <td>03.07.2011</td>
                                                <td>Daniel Klinger</td>

                                                <td><span style="color:red; font-weight:bold;">offline</span></td>
                                                <td><input type="hidden" name="albumid" id="albumid" value="3" /><a href="#" class="edit-album">bearbeiten</a></td>
                                            </tr>
                                                                                        <tr>
                                                <td></td>
                                                <td>F&auml;sschentrinken 2003</td>
                                                <td>0</td>

                                                <td>06.07.2011</td>
                                                <td>Daniel Klinger</td>
                                                <td><span style="color:red; font-weight:bold;">offline</span></td>
                                                <td><input type="hidden" name="albumid" id="albumid" value="4" /><a href="#" class="edit-album">bearbeiten</a></td>
                                            </tr>

Ausgelesen wird das hidden-input feld mit:

HTML:
$('.edit-album').click(function(e) {
    			e.preventDefault();
 				id = $("#albumid").val();

Will ja ids mit einem Hidden input übergeben. Hab bis gerade nur mit einem Eintrag gearbeit. Nun wird beim Link-click immer die id=3 ausgewählt. Wäre super wenn du mir noch sagen könntest wie sich das ändern lässt!
 
Zuletzt bearbeitet:
Eine ID muss im gesamten Dokument eindeutig sein. Wenn es mehrere gibt, wird das erste Element gewählt (deshalb id=3).

Ich würde in dem Fall einfach über den Baum gehen. Das hidden-input ist ja ein Geschwisternelement des Links.

Javascript:
$('.edit-album').click(function(e) {
    e.preventDefault();
    id = $(this).prev().val();

Oder auch über den Namen und das Eltern-Element

Javascript:
$('.edit-album').click(function(e) {
    e.preventDefault();
    id = $('[name=albumid]', this.parentNode).val();
 
Hab beide ausprobiert. Scheint nicht zu klappen. Hab beide mit alert ausgeben lassen. Beide undefined!
 
Zuletzt bearbeitet:
Hab es 1zu1 kopiert und bekomme für beide Fällte dir korrekte ID.

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
	
	<title>Album edit</title>
</head>

<body>
	<div>
	<table>
		<tr>
			<td></td>
			<td>F&auml;sschentrinken 2001</td>
			<td>0</td>
			<td>03.07.2011</td>
			<td>Daniel Klinger</td>
			<td><span style="color:red; font-weight:bold;">offline</span></td>
			<td><input type="hidden" name="albumid" value="3" /><a href="#" class="edit-album">bearbeiten</a></td>
		</tr>
		<tr>
			<td></td>
			<td>F&auml;sschentrinken 2003</td>
			<td>0</td>
			<td>06.07.2011</td>
			<td>Daniel Klinger</td>
			<td><span style="color:red; font-weight:bold;">offline</span></td>
			<td><input type="hidden" name="albumid" value="4" /><a href="#" class="edit-album">bearbeiten</a></td>
		</tr>
	</table>
	</div>
	
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>
	<script type="text/javascript">
	/* <![CDATA[ */
	$(function() {
		var id;
		$('.edit-album').click(function(e) {
			e.preventDefault();
			
			id = $(this).prev().val();
			alert(id);
			
			id = $('[name=albumid]', this.parentNode).val();
			alert(id);
		});
	});
	/* ]]> */
	</script>
</body>

</html>
 
Mein Fehler. Hab gerade beim genaueren hinsehen bemerkt, das ich zwischen dem link und dem input noch nen span hatte. Nachdem ich das das nun vor das input-feld gesetzt habe funktioniert alles.
 
Zurück