• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Jquery.post() problem

hanssonny

New member
hi leute,

ich möchte gerne einen "Event Handler" für ein select und zwar soll bei der auswahl eines Listen elements die seite neu gelanden werden und parameter übergeben.

Code:
<select name="language" id="langauge">
        <option value="german">Deutsch</option>
        <option value="english">Englisch</option>
    </select>
    <script>
        $('#langauge').change(function() {
            if( this.selectedIndex === 0 ) {
                $.post("installation.php", {step: "step1", sprache: "german"});
           } else {
                $.post("installation.php", {step: "step1", sprache: "english"});
           }
        });
    </script>



in meiner installation.php möchte ich die sprache wie folgt abfragen:
PHP:
if(isset($_POST['sprache'])){
            $sprache = $_POST['sprache'];
            echo $sprache;
        }

da wird mir aber leider nichts ausgegeben ... woran kann das liegen?

js fehler gibt es keine
 
Warum machst du das so kompliziert? Einfach eine <form> drum herum und im onchange ein ="document.formname.submit();".
 
ja ein form hab ich drum rum, aber den inhalt des forms ändere ich laufend

klar kann ich es so auch machen trotzdem wüsste ich gerne wo mein fehler ist :p
 
Na ja, du übergibst das Feld schlicht nicht.
$.post("installation.php", {step: "step1", sprache: "english"}); überträgt ja nicht automatisch auch das Feld "language", da fehlt was.
 
Wozu überhaupt die Abfrage? arbeite mit .serialize() damit kannst du dein komplettes Formular als Post-Parameter übergeben lassen. Einfacher geht es nicht mehr. :)

oder wenigstens ohne die Abfrage:

PHP:
<select name="language" id="langauge">
  <option value="german">Deutsch</option>
  <option value="english">Englisch</option>
</select>
<script>
  $('#langauge').change(function() {
    var selectedValue = $('option:selected', this);
    $.post("installation.php", {step: "step1", sprache: selectedValue});
  });
</script>
 
Zuletzt bearbeitet:
Natürlich siehst du nichts. Du wertest die Antwort des AJAX-Requests ja gar nicht aus - generell machst du gar nichts im Callback...

Code:
<select name="language" id="language">
	<option value="german">Deutsch</option>
	<option value="english">Englisch</option>
</select>
<script>
	$('#language').change(function(){
		$.post("installation.php", {step: "step1", sprache: this.value}, function(data){
			alert(data);
		});
	});
</script>
 
Zurück
Oben