Via JavaScript Daten an PHP geben (inkl. AJAX-Reload)

Fragen zum Thema HTML, JavaScript, PHP
Antworten
MasterLD
Beiträge: 7
Registriert: Fr Dez 30, 2011 10:05 pm

Via JavaScript Daten an PHP geben (inkl. AJAX-Reload)

Beitrag von MasterLD » Do Mär 15, 2012 8:08 pm

Hey community,

ich zerbrech mir schon seit einigen Tagen den Kopf darüber wie ich folgendes umgesetzt bekomme:

Ich habe:
- HTML-Formular
- PHP-Script zur Datenbankausgabe
- AJAX-Funktion zum Reload des PHP-Scripts

Nun soll es folgendermaßen ablaufen: Der Nutzer gibt seine Wunschdaten in das Formular ein und bei jeder Änderung lädt der Ausgabebereich (PHP-Script) neu und passt sich entsprechend des Formulars in den Suchergebnissen an. Soweit funktioniert das auch schon. Man gibt Daten ein und via onchange und onblur ruft das Formular die AJAX-Funktion auf, die den Reload veranlasst.
Mein Problem hierbei ist jetzt allerdings die Datenübergabe .. Wie kann ich die Formulardaten so übermitteln, dass ich sie als $_GET[""]-Variable im PHP-Script habe und somit die Ausgabe anpassen kann nach dem Reload.

Hat zwar nur indirekt mit PHP zu tun, aber vielleicht könnt ihr mir ja zumindest nen Denkanstoß verpassen =)

Greetz,
Lars

Benutzeravatar
bbbl
Beiträge: 80
Registriert: So Jul 19, 2009 12:04 am

Re: Via JavaScript Daten an PHP geben (inkl. AJAX-Reload)

Beitrag von bbbl » Do Mär 15, 2012 8:58 pm

Denkanstoß genug?

Code: Alles auswählen

var xhr = new XMLHttpRequest();
//...
xhr.open("GET", "/ajax.php", true);
xhr.send("key=value&key2=value2");
Alternativ geht auch das:

Code: Alles auswählen

xhr.open("GET", "/ajax.php?key=value&key2=value2", true);
xhr.send();

MasterLD
Beiträge: 7
Registriert: Fr Dez 30, 2011 10:05 pm

Re: Via JavaScript Daten an PHP geben (inkl. AJAX-Reload)

Beitrag von MasterLD » Fr Mär 16, 2012 11:51 am

Danke für deine Antwort, aber so weit bin ich auch schon .. Wie kriege ich das jetzt hin das key=value aus dem Formular stammt? Also:

- Wie mache ich aus Fomulareingaben JavaScript-Variablen und
- Wie übergebe ich Javascriptvariablen in die open-Funktion?

Mit freundlichen Grüßen,
Lars :)

C@mper
Beiträge: 88
Registriert: Mo Nov 15, 2010 3:30 pm

Re: Via JavaScript Daten an PHP geben (inkl. AJAX-Reload)

Beitrag von C@mper » Fr Mär 16, 2012 1:34 pm

ich übergebe php Variablen/Arrays z.B. mit json_ an JS um diese dann dort zu verarbeiten.

in etwa:
xy.php

Code: Alles auswählen

function MyPhpFunc()
{
  .
  .
  $aMyPhpValues = array(........);
  .
  .
  echo "<script type='text/javascript'> var aMyJsValues = ". json_encode($aMyPhpValues ) ."; </script>";
  .
} // MyPhpFunc()
yz.js

Code: Alles auswählen

function MyJsFunc()
{
  .
  .
  document.getElementById('abc').value = aMyJsValues [value]['Huhu'];
  .
} // MyJsFunc()

MasterLD
Beiträge: 7
Registriert: Fr Dez 30, 2011 10:05 pm

Re: Via JavaScript Daten an PHP geben (inkl. AJAX-Reload)

Beitrag von MasterLD » Fr Mär 16, 2012 4:14 pm

Hey,

das gibt mir schon mal Hoffnung, dass ich Werte übergeben kann .. Aber die sollen aus HTML-Formulareingaben stammen und nicht aus PHP-Dokumenten, sorry .. Kennst du da vielleicht auch Möglichkeiten?

Peace!
Lars :)

Benutzeravatar
Dubbel
Beiträge: 197
Registriert: So Jul 06, 2008 6:25 pm
Wohnort: Kopenhagen
Kontaktdaten:

Re: Via JavaScript Daten an PHP geben (inkl. AJAX-Reload)

Beitrag von Dubbel » Sa Mär 17, 2012 10:28 am

Dazu musst du den zweiten Code von C@mper quasi umdrehen.

z.B. das Formular

Code: Alles auswählen

<form>
    <input type="text" id="my_form_input" />
    <input type="submit" onclick="get_form_value();return false;" />
</form>

Code: Alles auswählen

function get_form_value()
{
    var value_from_form = document.getElementById('my_form_input').value;
    // die URL, die du mit ajax aufrufst: "deineurl.php?value="+value_from_form
}
Ist jetzt ungetestet, aber vom Prinzip her sollte es so gehen.
Das return false; beim onclick-Event sollte dafür sorgen, dass das Formular nicht wie üblich abgesendet wird und die Seite neu laden muss, da das ja von Ajax übernommen wird.

Antworten