php için tüm select değerleri geçirmek

3 Cevap php

Ben bir select box var:

<select name="sub_selected" class="bmarks" id="sub_selected" 
style="width:400px" size="5">
            <option value="1">first value</option>
            <option value="2">second value</option>
            <option value="4">other vale</option>
                                  </select>

Ben php tüm değerleri geçmek istiyorum.

Ben aşağıdaki kodu yazmak ama çalışmıyor:

$('#sub_selected').each(function(i, selected){
        foo[i] = $(selected).val();

                var title     = $('#prop_tile').attr('value');
                $.ajax({
                type: "POST",
                url: "add_process.php",
                data: "title="+ title +"& stages="+ foo,
                success: function(html){
                if (html==1){
                $('div.saving').hide();
                $('div.success').fadeIn();
                }else {
                $('div.saving').hide();
                $('div.nosuccess').fadeIn();
                }

                }
                });

Ben tercihen bu formatta (1,2,4) olarak, mysql saklamak için php seçin kutusunda tüm değerlerini göndermek istiyorum.

Teşekkürler

3 Cevap

Jquery hakkında çok şey bilmiyorum ama sizin jquery sadece <select> etiketini içeren formu gönderdiğinde varsayılarak, HTML seviyesinde tamamen sorunu çözmek mümkün olabilir gibi geliyor bana. <select> davranır yolu tarayıcı sadece seçili yazı veri sunacağını olmasıdır. Seçenekler vurgulanır değilse, bunlar POST olarak sunucuya gönderilen olmayacaktır.

Bunu aşağıdaki gibi çözmek mümkün olabilir; Birden fazla elemanı seçilebilir ve böylece, her şeyden önce, da <select> multiple="multiple" özniteliği gerekmektedir. İkinci olarak, <option> etiketlerin her biri için selected="selected" özniteliği ekleyin. Ve son olarak, kullanıcı, teslimiyeti oluşturan <select> etiketi disabled="disabled" niteliğini eklemek için önce seçeneklerden herhangi seçimini kaldırabilirsiniz istemiyorsanız.

GÜNCELLEME: Ayrıca PHP tarafında bir dizi olarak değerini alırsınız böylece name="sub_selected[]" için name="sub_selected" değiştirmek isteyebilirsiniz. Sen sub_selected[] için sub_selected sizin jquery başvuruları ayarlamak gerekir.

Eğer gerçekten HEPSİ istiyorsanız, o zaman bu şekilde yapmak gerekmez. Onları PHP Eğer seçme seçeneklerini görüntülemek için onları var aynı şekilde alın.

Eğer gerçekten jquery ile yapmak istiyorsanız, burada bunu yapmak için basit / doğru yolu:

// I'm not sure what the '#prop_tile' element is so I didn't 
// include it for this example
var all_vals = new Array; 
$('#sub_selected option').each(function() {
    all_vals.push($(this).val());
});
$.post('add_process.php', { stages:all_vals }, function(html) {
    $('div.saving').hide();
    $('div.success').fadeIn();
},'html');

Alıcı ucunda, bunu yapabilirsiniz:

<?php
if(isset($_POST['all_vals'])) {
    $all_vals = $_POST['all_vals'];
    // $all_vals is now an array = [1,2,4]
}
?>

NOTE: deri derin, bunu yapmak için aptalca bir şey gibi görünüyor, çünkü bunu yapmak için neden isteyeyim hakkında daha fazla bilgi ifşa eğer güzel olurdu.