budders
Goto Top

JavaScript Variable an PHP per AJAX?

Guten Morgen liebe Administratoren.

Ich habe mal eine Frage bezüglich PHP, Javascript und den dementsprechenden Variablen.

Unzwar habe ich mit ein wenig Unterstützung eine Homepage gebastelt, die eine MySQL Datenbank ausliest und darstellt.
Nun möchte ich alle vom User markierten Objekte (sind in einer javascript Variable gespeichert) zusammen mit ein paar Informationen aus einem Formular wieder an mich senden, damit ein PHP Script das ganze in eine Datei auf dem Server schreibt.

Die Daten aus dem Formular habe ich bereits erfolgreich übertragen bekommen per POST, jedoch bereitet mir die JavaScript Variable Probleme.

Ich habe gehört, dass es mit Hilfe von Ajax funktioniert, eine Javascript Variable wieder an PHP zu übergeben, doch ich steige dort noch nicht wirklich durch.

Sollte ich noch wichtiges vergessen haben, weist mich bitte darauf hin.

Vorab schon ein mal vielen Dank für eure Hife.

MfG Budders

hier ein paar Auszüge aus dem Code
<script type="text/javascript">  
	var musicList = ;
			
	function addTomusic (addmusic) {
		musicList.push(addmusic);
		for (i = 0; i < musicList.length; i++)	{
		var newmusic = "<a class='remove' href='#' onClick='removeRecord(" + i + ");'> Löschen</a> <span class='title'>" + musicList[i] + "</span>";  
		};
		document.getElementById('musics').innerHTML += newmusic;  
		}
		function removeRecord (i) {
			musicList.splice(i, 1);
			var newmusic = "";  
			for (var i = 0; i < musicList.length; i++) {
			newmusic += "<a class='remove' href='#' onClick='removeRecord(" + i + ");'> Löschen</a> <span class='title'>" + musicList[i] + "</span>";  
			 };
		document.getElementById('musics').innerHTML = newmusic;  
	}
</script>

<form action="submit.php" id="contact" method="post">  
	<fieldset>
		<input name="name" id="name" type="text" size="20" maxlength="30" placeholder="Name eingeben"></input> <br />  
		<textarea rows="10" name="text" id="text" placeholder="Sonstige Musikwünsche"></textarea> <br />  
	</fieldset>
	<input type="submit" value="Absenden" name="submit">  
	<p class="success" style="display:none">Erfolgreich versendet.</p>  
	<p class="error" style="display:none">Fehler.</p>  
</form>

Content-ID: 230483

Url: https://administrator.de/contentid/230483

Ausgedruckt am: 08.11.2024 um 13:11 Uhr

colinardo
Lösung colinardo 20.02.2014 aktualisiert um 13:41:53 Uhr
Goto Top
Hallo Budders,
schau mal hier rein: Manuelle Server Status Abfrage.
das ist ein einfaches Beispiel wie man das via Ajax und jQuery post() an ein PHP-Script senden kann. Zusätzlich würde ich bei komplexen Datenstrukturen diese mit JavaScript vor dem Versenden in einen JSON-Kodierten String wandeln (hier mit jQuery).
JSON.stringify(myObject);
und dann in PHP wieder zurück in ein Object wandeln json_decode():
json_decode(jsonstring);

Ansonsten gibt es dazu jede Menge Tutorials / hier mal eine Auswahl:

Grüße Uwe
Budders
Budders 20.02.2014 um 13:42:28 Uhr
Goto Top
Danke dir Uwe, hat mir weiter geholfen face-smile

MfG Gerrit
Arano
Arano 20.02.2014 aktualisiert um 17:30:33 Uhr
Goto Top
Nabend,

Die Daten aus dem Formular habe ich bereits erfolgreich übertragen bekommen per POST, jedoch bereitet mir die JavaScript Variable Probleme.
Lasse die Variable einfach in ein input[type=hidden] schreiben, dan bekommst du sie __total einfach und wie den Rest auch__ als PHP-Post-Variable.
Und den ganzen Ajax- und jQuerykram kannst du dir ersparen face-smile


Das entspricht zwar nicht direkt der Antwort auf deine Frage, ist aber die Lösung für dein Problem.


~Arano
Budders
Budders 20.02.2014 um 18:20:19 Uhr
Goto Top
Zitat von @Arano:

Nabend,

> Die Daten aus dem Formular habe ich bereits erfolgreich übertragen bekommen per POST, jedoch bereitet mir die JavaScript
Variable Probleme.
Lasse die Variable einfach in ein input[type=hidden] schreiben, dan bekommst du sie __total einfach und wie den Rest auch__
als PHP-Post-Variable.
Und den ganzen Ajax- und jQuerykram kannst du dir ersparen face-smile


Das entspricht zwar nicht direkt der Antwort auf deine Frage, ist aber die Lösung für dein Problem.


~Arano

Dann müsste ich ja trotzdem die JavaScript Variable irgendwie in den Input bringen. Und dann wären wir wieder beim oben genannten Problem oder übersehe ich da jetzt etwas? :O

Trotzdem vielen Dank für den Beitrag, hatte ich mir auch schon ein paar Gedanken drüber gemacht.

MfG Gerrit
Arano
Arano 20.02.2014 um 18:36:06 Uhr
Goto Top
Hi

ja schon irgendwie, aber im Prinzip...
   document.getElementById('hiddenFldId').value = musicList;  
Einziges Problem könnte wohl sein die Daten aus "musicList" ist ein passendes Format zu bringen... aber diese Daten sind uns nicht bekannt face-wink
Allerdings gibt es dieses kleine Funktiönchen: http://phpjs.org/functions/serialize/


~Arano
Budders
Budders 20.02.2014 aktualisiert um 20:17:52 Uhr
Goto Top
Das werde ich gleich mal testen face-smile

Ergebnis editiere ich gleich hier rein

##Edit:
Habe es nicht getestet, da es sich um einen array handelte, hatte ich vergessen zu erwähnen.

Problem ist jetzt aber gelöst face-smile

Danke für eure Hilfe!

Mfg Gerrit