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

JQuery $.Post, Formularfelderinhalt senden funktioniert nicht

hansi3000

Neues Mitglied
Moin, ich bin mittlerweile dabei eine recht große App für eine ebenfalls selbsterstellte Community zu bauen.

Ich arbeite mit JQuery und JQTouch, aber das Problem liegt darin (Die App ist für Safari auf den iDevices gedacht), das der mobile Safari die Vollbildfunktion bei Webapps zwar auf Wunsch einschaltet, aber wenn diese eingeschaltet ist, udn man klickt auf einen Link bzw. auf einen Submit-Button, dass eine neue Seite eingeblendet wird, die dann nciht mehr im Vollbildmodus ist.

Um aber nun einen neuen Blogeintrag zu schreiben habe ich mir etwas JQuery Hilfe ($.Post) geholt.

Mein Code(ausschnitt): ($blogid ist gleich 1)

PHP:
echo ' <form name="blog'.$blogid.'newform">
	<input type="text" name="title" value="Titel" />
	<textarea name="content">Beitrag</textarea>
	<input      type="button"name="submit"value="Posten"onClick="$.post(\'get.ph?pmakeblogentrie=1\',{blogid: '.$blogid.', title: this.title.value , content: this.content} ,function(data) {$(\'#blog'.$blogid.'result\').append(data)});"/>
</form> ';

Jedoch wird jetzt per POST zwar die blogid Variable versendet, die anderen beiden aber nicht, weswegen cih glaube ich habe hier einen Fehler in JS, welchen ich aber auch nach etlichem ausprobieren nciht finde!

Vielen Dank im Vorraus, hansi3000.
 
Zuletzt bearbeitet:
Der Fehler muss nicht zwangsweise im JS liegen, ich für meinen Teil mache mich immer ein wenig schwer, Variablen Serverseitig abzufragen, die per AJAX versendet wurden. Ich sehe keinen Grund, warum die anderen beiden Variablen nicht versendet werden sollten. Hast du schon mal mit

PHP:
print_r( $_POST );

den Inhalt des Post-Arrays ausgeben lassen?
 
ich hab den Inhalt per var_dump ausgeben lassen:

PHP:
if (isset($_GET['makeblogentrie'])) {
		echo 'xD';
		var_dump($_POST);
	}

Aber es wird nur blogid angezeigt
 
Da kann ich dir wohl auch nicht weiterhelfen... Wie gesagt, ich sehe da so keinen Fehler. Versuche vielleicht $.ajax zu verwenden anstelle von $.post und schau, ob du es so gebacken bekommst, wenngleich $.post auf $.ajax mit vordefinierten Werten zugreift... Aber bei $.ajax hast du einfach mehr Kontrolle. ;)
 
Sowas inline und onclick zu machen ist nicht sinnvoll, zumal du jQuery verwendest, das bestens dafür geeignet ist unobtrusive Skripte zu schreiben.
Damit der Code an sich besser wartbar ist, würde ich sowas nie inline machen und an deiner Stelle den JS Code auslagern und ein bisschen mit jQuery auseinandersetzen.

Vielleicht liesse sich der Fehler auch leichter lokalisieren, wenn wir den Code der im Browser ankommt kennen würden.
 
Mein Code sieht jetzt so aus:

PHP:
echo '
<form name="blog'.$blogid.'newform">
					<input type="text" name="title" id="title" value="Titel"/>
					<input type="text" name="contenta" id="content" value="Beitrag"/>
					<input type=\'button\' value="Posten" name=\'submit\' onClick=\'$("blog'.$blogid.'result").load("get.php?makeblogentrie=1&title="+this.title.value+"&content="+this.contenta.value+"");\'/>
				</form>
';
PS: Nutze Safari auf Windoof
Und mir wird folgender Fehler angezeigt:
TypeError: Result of expression 'this.contenta' [undefined] is not an object.
 
struppi meinte, dass du aus deinem Code vielleicht sowas machst:

HTML:
<script>
  function deineFunktion( parameter1, parameter2 ) {
    // Tu was!
  }
  
  $( document ).ready( function( ) {
    $( '#postButton' ).click( deineFunktion );
  } );
</script>

was die Lesbarkeit des Codes und auch die Wartbarkeit drastisch erhöht. Versuch's mal, hilft uns auch.
 
Zurück
Oben