href mit Datensatz versehen

Bad Robot

Grünschnabel
Hallo nochmal,
hoffentlich kann mir jemand bei meinem neuem Problem helfen, wie schon bei den Problemen davor :)
Ich gebe in meinem Browser eine Tabelle aus mit Datensätzen, am ende der Datensätze habe ich noch ein einfaches
HTML:
 <a href="JavaScript:aendern()">Ändern</a>
drangehängt.
Dieser Link öffnet ein popUp mit einem Formular, wie z.B. Datum usw..
Ich würde gerne den Datensatz, der in der selben Reihe wie der Datensatz steht in das Formular übergeben, nur leider hab ich keine Ahnung wie das gehen soll. Nach einer Veränderung der Daten im Formular soll der Datensatz per UPDATE in der Datenbank aktualisiert werden. Habe mir gedacht, dass ich den Primary Key mit Autoincrement dafür benutze, aber wie kann ich auf den Key zugreifen indem ich auf den Link klicke und der mir das Formular mit dem Datensatz füllt, der neben den bestimmten Link steht. Hoffentlich ist das von mir verständlich geschildert worden, freue mich über jeden Rat.
Gruß Bad Robot
 
Hallo!
übergebe doch deinen PrimaryKey in der Funktion. Ich weiß nicht genau wie du deine Datenabrufst, aber es müsste dann wie folgt aussehen.
HTML:
<a href="javascript:aendern(<?php echo $row["id"]; ?>)">Ändern</a>
Dadurch gibst du der Funktion die ID mit. Kannst du natürlich auch mit anderen Werten machen.
Wenn du mir deine Datei mal postest, kann ich dir es auch anpassen. Ausser der Tip hilft dir schon weiter.
 
Ich habe meine Daten bis jetzt in einem einfachem SELECT abgerufen, das die Daten in eine <?php> echo '<table>..</table>'; ?> eingetragen hat.

meine JS Funktion sieht so aus:

Code:
function aenderung() {
fenster = window.open("aenderung.php","PopUp","width=300,height=400,top=210,left=650,menubar=no,toolbar=no,scrollbars=no,status=no,resizable=no,location=no,hotkeys=no")
}
 
Ich habe meine Daten bis jetzt in einem einfachem SELECT abgerufen, das die Daten in eine <?php> echo '<table>..</table>'; ?> eingetragen hat.

Mir ist schon klar, dass du die Daten mit einem SELECT-Befehl aus der DB holst, eine andere Möglichkeite kenn ich nun auch nicht. Mir kam es drauf an welche Funktion du benutzt:
-mysql_ fetch_ array
-mysql_ fetch_ assoc
-mysql_ fetch_ field
-mysql_ fetch_ object
-mysql_ fetch_ row

Also?

Deine JS-Funktion musst du dann wie folgt abändern, wenn ich mich richtig entsinne:
Code:
function aenderung(id) {
fenster = window.open("aenderung.php?uid="+ id +"","PopUp","width=300,height=400,top=210,left=650,menubar=no,toolbar=no,scrollbars=no,status=no,resizable=no,location=no,hotkeys=no")
}
 
Du könntest es so machen wie SnEaKy schon geschrieben hat:
HTML:
<a href="javascript:aenderung(10)">Ändern</a>
Dein Javascript mußt du etwas anpassen
HTML:
<script type="text/javascript">
function aenderung(id) {
      fenster = window.open("aenderung.php?id="+id,"PopUp","width=300,height=400,top=210,left=650,menubar=no,toolbar=no,scrollbars=no,status=no,resizable=no,location=no,hotkeys=no")
    } </script>
Und in deiner aenderung.php
PHP:
<?php
echo $_GET["id"];
?>
Die 10 ist jetzt nur ein Beispiel. Wie du weiter vorgehst dürfte ja jetzt klar sein.
 
Also ich denke, dass der richtige Abruf -mysql_ fetch_ row sein müsste, da ich ja nur den einen bestimmten Datensatz haben möchte, an den der Link dranhängt. Wenn ich jetzt z.B. eine 10 als Parameter übergeben möchte würde er mir den Datensatz mit der ID 10 übergeben. Diese Lösung wäre aber statisch, wie könnte man den Parameter dynamisch machen?
Gruß Bad Robot
 
Wie das geht hat dir SnEaKy schon geschrieben.
HTML:
<a href="javascript:aendern(<?php echo $row["id"]; ?>)">Ändern</a>
Dadurch gibst du der Funktion die ID mit. Kannst du natürlich auch mit anderen Werten machen.
Wenn du mir deine Datei mal postest, kann ich dir es auch anpassen. Ausser der Tip hilft dir schon weiter.

Ob nun mittels mysql_fetch_row oder per Schleife ist egal.
 
Mach lieber Folgendes daraus:
HTML:
<a href="aenderung.php?id=10" class="popup">Ändern</a>
Code:
window.onload = function() {
	var aElements = document.getElementsByTagName("a");
	for( var i=0; i<aElements.length; i++ ) {
		if( !aElements[i].className.match(/\s*popup\s*/) ) {
			continue;
		}
		aenderung(aElements[i].href);
	}
}
function aenderung( href ) {
	var fenster = window.open(href, "PopUp", "width=300,height=400,top=210,left=650,menubar=no,toolbar=no,scrollbars=no,status=no,resizable=no,location=no,hotkeys=no");
}
Damit funktioniert das Ganze auch ohne JavaScript-Unterstützung.
 
Zurück