Mehrere Parameter übergeben

destroyaa

Mitglied
Hallo

Ich habe folgendes Problem:

Ich will mehrere Parameter bei einer Funktion übergeben (um den Datenbank Eintrag upzudaten)

HTML:
function deletex(id, datum, bezeichnung, erinnerung){
		var istTrue = confirm(id);
			if(istTrue == true)
			{
			jQuery.ajax({
				type: "POST",
				data: "id=" +id,
				url: "delete.php",
				success: function(){
				$("#eintrage").load("auslesen.php");
				}
		});
	}
}


Hier der Link:

HTML:
<a href='#' onClick='b_onClick($row->id, $row->dat, $row->bezeichnung, $row->erinnerung)'>  l&ouml;schen </a>

Leider Funktioniert das nicht, er macht nämlich garnichts..

Kann mir wer helfen****

lg
 
Hallo,

Ich gehe mal davon aus, daß diese PHP-Variablen zum Teil Strings sind, du musst sie daher in Quotes setzen:

Code:
echo "<a href='#' onClick='deletex(\"{$row->id}\",\"{$row->dat}\",\"{$row->bezeichnung}\",\"{$row->erinnerung}\")'>  l&ouml;schen </a>";

Damit bist du aber nch nicht auf der sicheren Seite. Sollten diese String Zeichen enthalten wie etwa ' " > < oder Zeilenumbrüche, hast du wieder den Salat in Form eines JS-Syntax-Errors. Man könnte diese Strings mit PHP codieren und mit JS wieder decodieren, aber die Arbeit kann man sich auch sparen.

Erzeuge ein JSON-Objekt aus dem ganzen Gedöns($row) und übergebe dies der Funktion als Argument:

Code:
echo "<a href='#' onClick='deletex(".json_encode($row).")'>  l&ouml;schen </a>";

In der JS-Funktion kannst du nun problemlos auf die Member des übergebenen Objektes zugreifen:

Code:
function deletex(row){
		var istTrue = confirm(row.id);
			if(istTrue == true)
			{
			jQuery.ajax({
				type: "POST",
				data: {id:row.id},
				url: "delete.php",
				success: function(){
				$("#eintrage").load("auslesen.php");
				}
		});
	}
}

Ich habe das Argument mal row benannt, wie du siehst, kannst du auf die id nun per row.id zugreifen.

Der Zugriff auf die anderen Member erfolgt genauso:
Code:
row.dat 
row.bezeichnung
row.erinnerung
 
Hallo danke für die ausführliche Antwort!


Es funktioniert super! echt danke nochmal

Jetzt muss ich ein Script basteln, womit ich die Einträge bearbeiten kann,

Ich übergebe also die Variablen mit POST an change.php


Code:
function change(row){
		var istTrue = confirm("'"+row.bezeichnung + "'" +" wirklich bearbeiten?");
			if(istTrue == true)
			{
			jQuery.ajax({
				type: "POST",
				data: {bez:row.bezeichnung},
				url: "change.php",
				success: function(){
				$('[id^=bearbeiten]').show();
				}
		});
		
	}
}


in der change.php "fange" ich die Variable mittels
PHP:
 $_POST['bez'];
ab..

nur sagt er mir dann, wenn ich die Variable mit echo Ausgeben will:
HTML:
Notice: Undefined index: bez in D:\xampp\htdocs\Kalender\change.php on line 2


Hat jemand eine Idee, warum er mir die Variable nicht in die change.php übergibt?

lg
 

Neue Beiträge

Zurück