2016-06-20 6 views
1

Ich habe ein Formular, das Auswahlfeld Optionen für alle, alle oder mindestens gibt. Wenn Sie "Mindestens" auswählen, löst JavaScript (siehe unten) ein zweites Auswahlfeld aus und ermöglicht die Auswahl aus der Anzahl der aktivierten Kontrollkästchen. Wie kann ich meinen "atleast" -Optionswert mindestens auf "atleast" setzen: Nummer gewählt? Also, wenn das Formular geschrieben wird postet atleast: 1, atleast: 3 usw.PHP POST ein variabler Wert

Hier ist mein HTML:

<select name="anyall" id="anyall" onchange="anyall_change()"> 
    <option value = "any"> Any </option> 
    <option value = "all"> All </option> 
    <option value = "atleast"> At Least... </option> 
</select> 
<span id="atleast_div" style="display:none"></span> 

Hier ist das JavaScript, das das zweite Auswahlfeld auslöst, die eine Liste von Zahlen gibt zu wählen aus auf, wie viele Kontrollkästchen werden geprüft:

function anyall_change() { 
    if ($('#anyall').val() == 'atleast') { 
     var current = $('#atleast_qty').val(); 
     var count = 0; 
     $('.possible_checked').each(function() { 
      if ($(this).is(':checked')) { 
       count++; 
      } 
     }); 
     if (current > count) { 
      current = count; 
     } 
     var opts = '<select name="atleast_qty" id="atleast_qty">'; 
     for (i = 0; i < count; i++) { 
      opts += '<option '; 
      if (current == (i + 1)) { 
       opts += 'selected '; 
      } 
      opts += 'value="' + (i + 1) + '">' + (i + 1) + '</option>'; 
     } 
     opts += '</select> Option(s) from list above'; 
     $('#atleast_div').html(opts); 
     $('#atleast_div').show(); 
    } else { 
     $('#atleast_div').hide(); 
    } 
} 

habe ich viel Zeit damit verbracht, diese ohne Glück herauszufinden. Ich weiß, dass du den Wert der Option nicht auf eine Variable setzen kannst, also musst du es irgendwie mit PHP anhängen können. Würde etwas Hilfe lieben, danke!

Antwort

1

Sie können den Optionswert der Auswahl auf Präfix mit 'atleast:' string setzen und den Wert mit PHP erhalten.

Beispiel:

opts += 'value="atleast:'+(i+1)+'">'+(i+1)+'</option>'; 

Und auf der PHP-Seite, erhalten den Wert:

<?php 
echo $_POST['atleast_qty']; 

Hoffnung, das hilft.

+1

Arbeitete gut, guter Gedanke. Vielen Dank! – rtoken