# Problem mit $JQuery.ajax(...) POST Daten werden nicht gesendet



## marcel_t (3. März 2010)

Hallo,

ich habe in JQuery folgenden Code-Abschnitt der mittels AJAX POST-Daten an eine PHP-Skript schicken soll:


```
jQuery.ajax({
              url: url,              
              type: "POST",
              data: postData
            });
```
In url steckt meine URL, das stimmt soweit. Allerdings kommt postData nicht an meinem PHP-Skript an (enthält sowas wie: user_input_value=12345).

Eigentlich müsste doch jetzt POST folgendes an das Skript senden:

```
meine.php?meineWerte=XX&user_input_value=12345
```
Macht er aber nicht! Sondern nur:

```
meine.php?meineWerte=XX&
```
Was mache ich denn falsch? Fehlt da noch etwas? Habt ihr vielleicht ne Idee?


----------



## rd4eva (3. März 2010)

Für die Methode gibt es die Shorthand function jQuery.post.

Was ist denn postData? Ein String? Ein Array?
Willst du ein Formular übermitteln?

Fragen über Fragen die mit ein bischen mehr Code gelöst werden können


----------



## marcel_t (3. März 2010)

Hi 

Die Shorthand Funktion ist ja im Prinzip das Gleiche nur in anderer Form (_"This is a shorthand Ajax function, which is equivalent to: $.ajax({
...)"_) 

PostData ist ein String und wird so erstellt (innerhalb der gleichen JQuery Funktion):

```
var postData = jQuery(this).parent().find(".user_input_value").serialize();
```
Ein *alert(postData)* ergibt somit, wie unten genannt, folgendes: _user_input_value=12345_

Somit sollte im PHP-Skript folgende Ausführung:

```
var_dump($_POST["user_input_value""])
```
das ergeben:* 12345*
Tut es aber leider nicht, da er *user_input_value* mir anscheind nicht als POST übergibt! 

Ich such ja schon wie ein Wilder im Netz nach Lösungen aber es scheint mir als bin ich der Einzige mit diesem Problem! Ich glaube der "Fehler" ist ganz einfach, nur ich find ihn einfach nicht..


----------



## marcel_t (3. März 2010)

Vielleicht als kleiner Nachtrag:

Folgendes (ist ja im Prinzip das Gleiche) hat auch nicht die richtige Lösung gebracht:


```
var data = jQuery(this).parent().find(".user_input_value").serialize();
JQuery.post(url, {user_input_value: data});
```


----------



## rd4eva (3. März 2010)

> Die Shorthand Funktion ist ja im Prinzip das Gleiche nur in anderer Form



Richtig. Aber weniger zu schreiben 



> var_dump($_POST["user_input_value""])



Da ist ein " zu viel.



> jQuery(this).parent().find(".user_input_value").serialize();



Wieso gehst du über parent und find wenn du einfach über die Klasse selektieren kannst?


----------



## marcel_t (3. März 2010)

rd4eva hat gesagt.:


> Richtig. Aber weniger zu schreiben


 




rd4eva hat gesagt.:


> Da ist ein " zu viel.


oups, Tippfehler (im Skript richtig).




rd4eva hat gesagt.:


> Wieso gehst du über parent und find wenn du einfach über die Klasse selektieren kannst?


Richtig, danke  Bin halt doch nur ein blutiger Anfänger 

Aber die Lösung war das leider auch noch nicht..


----------



## Sven Mintel (3. März 2010)

Moin Marcel,

eigentlich ist da alles korrekt, es sollte so funktionieren, wie du es dir vorstellst.

Warum es nicht funktioniert?...Könnte man bspw. herrausfinden, wenn man das Ganze in Aktion sieht.


----------



## rd4eva (3. März 2010)

Da muss ich Sven recht geben.

Ansonsten kann man nur wilde vermutungen anstellen.
Wie wird das Script denn aufgerufen? Per click auf einen form submit button? Falls ja , fehlt eventuell das return false?
Ist vielleicht in deiner php etwas falsch? Log files anschauen oder einfach mal nur ein statisches echo 'works'; ausgeben.


----------



## marcel_t (3. März 2010)

Danke an Euch beide..

Das Skript wird über ein <a> Attribut aufgerufen, wobei man auf ein <span> zugreift/klickt. Das *return false* ist vorhanden.
Ich vermute den Fehler in der php-Datei, das die weiterverarbeitende Funktion nicht wie gewünscht aufgerufen wird. Zumindest weiß ich jetzt das der Fehler nicht bei *JQuery.ajax(...)* liegt. Das hilft mir bei der Fehlersuche schon etwas weiter.. Danke


----------

