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

Frage value der gewählten option eines select-Elementes via jQuery ermitteln

xSTVNx

Mitglied
Wie kann ich mit jQuery den value der gewählten option eines select-Elementes ermitteln?

HTML:
<select id="size" name="size">
    <option value="s">S</option>
    <option value="m">M</option>
    <option value="l">L</option>
    <option value="xl">XL</option>
</select>

Javascript:
/* Variante 1 */
var size = $('#size option:selected').val();

/* Variante 2 */
var size = $('#size option:selected').attr('value');

/* Variante 3 */
var size = $('#size option:selected').text();

Leider habe ich bisher auch keine brauchbare Antwort via Google gefunden. oO

Danke und LG
 
Werbung:
Muß man die Frage jetzt verstehen ?
Komischer weiße funktionieren deine Varianten ja auch , doch eigentlich sollte das richtig sein
Code:
$('#size').val();

Das kommt dann eigentlich noch in ein Event rein wie change oder click
Code:
$('#size').change(function(){
console.log($('#size').val());
});
 
Muß man die Frage jetzt verstehen ?

Was ist an meiner Frage denn unverständlich? :frown:


Komischer weiße funktionieren deine Varianten ja auch , doch eigentlich sollte das richtig sein
Code:
$('#size').val();

So versuchte ich es sogar anfangs, aber durch diverse Google-Suchergebnisse, kam ich zu der Annahmne, dass dieses grundlegend falsch sei, weil man eben nicht die option abfragt.

Das kommt dann eigentlich noch in ein Event rein wie change oder click
Code:
$('#size').change(function(){
console.log($('#size').val());
});

So war bzw. ist mein ganzer JS-Code:
Javascript:
$( document ).ready(function() { /* add to cart */
   
    $('.toCart button').on("click", function() {
       
        var amount         = $('#amount').val();
        var productkey     = $('#article-details').attr('data-productkey');
        var size           = $('#size').val();
        var user_id        = $('#user_id').val();
       
        $.ajax({
            url: "../ajax/add2.cart.php",
            type: "GET",
            data: {
                amount:     amount,
                size:         size,
                productkey: productkey,
                user_id:    user_id
                },
            success: function(data) {
                $("#notify").html(data);  
            }
        });
           
    });
   
});

Das müsste doch reichen, oder? Aber in der add2.cart.php gibt es dann keine $_GET['size']-Variable bzw. sie ist ist leer, die anderen 3 funktionieren aber tadellos. :oops:

Aber wenn ich deine Antwort richtig verstehe, dann dürfte der Fehler ja scheinbar woanders liegen. :eek:

Nachtrag:

Wenn ich das mit in den JS-Code schreibe, dann wird mir bei Änderung im Log der korrekte Wert zurückgegeben. Aber dann ist mir nur umso unverständlicher, was an meinem Code nicht stimmt.

Javascript:
$('#size').change(function(){
    console.log($('#size').val());
});
 
Zuletzt bearbeitet:
Werbung:
Ich habe deinen Code mal ausprobiert, mit php Script was die Werte wieder zurück schmeißen tut.
Das html habe ich frei dazu geschrieben , doch es geht ja nur um das Select , und das habe ich auch von dir kopiert.

Also kurz gesagt klappt dein Code unverändert bei mir
http://sebastian1012.bplaced.net/losungen/select-auswahl.php

Danke für die Mühe! :)

Ich ahne es schon, dass sich an ganz anderer Stelle irgendwo ein absurder Fehler eingeschlichen hat, der für das Scheitern meinerseits sorgt. Ich werde heute Abend wohl mal alles Schritt für Schritt durchgehen müssen, denn ich konnte ihn gestern tatsächlich nicht mehr finden. :( Naja, mal schauen... :p
 
Sind deine Datein groß ?
Dann schick doch mal den ganzen Code von <html> bis </html>

Wenn ich das mit in den JS-Code schreibe, dann wird mir bei Änderung im Log der korrekte Wert zurückgegeben. Aber dann ist mir nur umso unverständlicher, was an meinem Code nicht stimmt.

Javascript:
$('#size').change(function(){
    console.log($('#size').val());
});

Das ist auch ok.
Ich denke mal das du beim Ajax Versand ,oder beim php ,was die Werte zurück wirft ,bearbeitet oder sonst was verkehrt ist .
Bau doch mal ein paar Console.logs ein dann sieht man ja wo man suchen muss.
Code:
<script>
$( document ).ready(function() { 
    $('.toCart').on("click", function() {
    console.log('Button fired');
        var amount         = $('#amount').val();
        var productkey     = $('#article-details').attr('data-productkey');
        var size           = $('#size').val();
        var user_id        = $('#user_id').val();
       console.log('Vor Ajax = '+size);
        $.ajax({
            url: "add2.cart.php",
            type: "GET",
            data: {
                amount:     amount,
                size:         size,
                productkey: productkey,
                user_id:    user_id
            },
            success: function(data) {
            console.log(data)
                //$("#notify").html(data); 
            }
        });
    });
});
</script>
Damit sollte man es schon etwas eingrenzen können.
Was macht das Php Script den da hinter ? Kommt der Wert da den an ?
 
Werbung:
Das Problem ist vermutlich schlicht und einfach, dass der Content vorher via AJAX geladen wurde. Bin da gerade durch was anderes drauf gestoßen. (Werde auch gleich einen Thread dafür eröffnen, weil ich es einfach nicht gebacken bekomme. :/)

Die Projekt hier strukturier ich aktuell noch um und räume auf. (Hatte gehofft, dass ich dabei eh auf den Fehler stoße.)
 
Zurück
Oben