• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

onclick function-Aufruf und Variablen-Übergabe

Emjay_Lee

Neues Mitglied
Hallo Liebes Forum.

Ich will wenn ich auf einen Link klicke via onclick eine Funktion aufrufen, welche einen String als return Variable enthält. Dann will ich diese Variable (welche einen String enthält) weiter verarbeiten und an eine PHP datei schicken.

Habe es bereits geschafft eine andere Variable an meine PHP Datei zu senden.

Hier mal ein Überblick des Codes:

Funktion welche die return Variable enthält, die ich an PHP senden will:
Code:
function culinarium(sorte) {
				
				var auswahl = sorte;
				return auswahl;
				
			}

Hier sende ich ich die Variable an PHP:
(die Variable aktuell wird gesendet.
Code:
function uploadFile() {

var aktuell = dateToString(current);

// ... Bla bla bla

client.open("POST", "upload.php?auswahl=" + auswahl + "&aktuell=" + aktuell);
				client.send(formData);


und hier der a href - TAG:
Code:
<a href="upload.html" data-rel="dialog" id="picveg" class="pic" onClick="return culinarium('soup'); "></a>


Ich sitze seit stunden am Rechner. Es kann also auch sein, dass es ein winziger dummer Syntax-Fehler ist, welchen ich derzeit einfach übersehe.

Vielen Dank für Eure Hilfe.

Emjay
 
Ich glaube, du denkst etwas falsch.

Die Funktion culinarium() wird zwar ausgeführt, aber 'auswahl' ist bloß innerhalb der Funktion bekannt. Durch das return lieferst du zwar den Wert zurück an den Link, aber der verschwindet im Nirvana.

Wenn du noch etwas mehr Quellcode bereitstellst, damit ich genau weiß, warum du 2 Funktionen benutzt (wann wird denn uploadFile() ausgeführt?!), helf ich dir gern ;)
 
Okay das kann sein. Mir brummt der Schädel und kann echt sein dass ich da etwas falsch denke.

Ich versuche mal zu erklären worum es geht:

Als erstes mal der Link, dann kannst es dir direkt mal anschauen. Culinarium

Des Weiteren handelt es sich um einen Upload, welcher in <form> getätigt wird. Dabei ruft der Submit Button die function uploadFile() Funktion auf. und da wird dann einiges ausgeführt.

Code:
function uploadFile() {

				//var auswahl = $("#auswahl").val();
				var aktuell = dateToString(current);
				//Wieder unser File Objekt
				var file = document.getElementById("fileA").files[0];
				//FormData Objekt erzeugen
				var formData = new FormData();
				//XMLHttpRequest Objekt erzeugen
				var client = new XMLHttpRequest();
				var prog = document.getElementById("progress");


				if (!file)
					return;


				prog.value = 0;
				prog.max = file.size;


				//Fügt dem formData Objekt unser File Objekt hinzu
				formData.append("datei", file);
				//formData.append("auswahl",  );
				client.onerror = function(e) {
					alert("onError");
				};


				client.onload = function(e) {
					document.getElementById("prozent").innerHTML = "100%";
					prog.value = prog.max;
				};


				client.upload.onprogress = function(e) {
					document.getElementById("progress").value = e.loaded;
					document.getElementById("prozent").innerHTML = Math.round(100 / e.total * e.loaded) + "%";
				};


				client.open("POST", "upload.php?auswahl=" + auswahl + "&aktuell=" + aktuell);
				client.send(formData);


			}


Das wäre die Funktion.

Das ist der Teil <form>. Dieser liegt allerdings in der upload.html Seite.

Code:
<form action="" method="post" enctype="multipart/form-data">					<input name="file" type="file" id="fileA" onchange="fileChange();" class="file"/>
					<progress id="progress" style="margin-top:10px"></progress><span id="prozent"></span>


					<select name="auswahl" id="auswahl">
						<option value="soup">Suppe</option>
						<option value="veg">Vegetarisches Men&uuml;</option>
						<option value="maco">Hauptgericht</option>
					</select>


					<input name="upload" id="upper" value="Upload" type="button" data-inline="true" onclick="uploadFile();" />


				</form>


reicht das?
 
Ja du hattest recht habe falsch gedacht und habe die ganze zeit onClick="auswahl='soup';" ausprobiert. dabei muss das c in onclick klein geschrieben werden. also Lösung

onclick="auswahl='soup';"

Trotzdem Danke ;)
 
Zurück
Oben