2013-04-26 13 views
6

Próbuję nie mieć przycisku przesyłania, czy istnieje sposób, aby formularz można przesłać, gdy użytkownik wybiera wartość?PHP Wyślij Wybierz Wybierz

<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>" > 

    <table class="form"> 

      <select name="category" class="formfield" id="category"> 
       <option value="-1"> Category </option> 
       <?php 
        $sql_contry = "SELECT * FROM category"; 
        $rs_c = mysql_query($sql_contry); 
        while ($row_c = mysql_fetch_array($rs_c)) { 
         echo '<option value="'.$row_c['category'].'">'.$row_c['category'].'</option>'; 
        } 
       ?> 
      </select> 

    </table> 

</form> 
+0

Tak, używając javascript! – adeneo

+0

Będziesz musiał użyć Javascript, aby to zrobić. –

+0

Użyj javascript. Podobny przykład znajduje się tutaj: http://stackoverflow.com/questions/10021848/enable-disable-submit-button-if-checkbox-jest-checked-unchecked –

Odpowiedz

2

Tak - używać javascript:

HTML:

<form id="frm"> 
    <select onchange="onSelectChange();"> 
      <option>1</option> 
      <option>1</option> 
    <select> 
</form> 

JS:

function onSelectChange(){ 
document.getElementById('frm').submit(); 
} 
+1

Rzeczywiście musisz sprawić, aby funkcja Js przyjęła argument lub coś w tym stylu sprawiają, że jest to naprawdę przydatne. Nie można dodać 2 list wyboru za pomocą tego :). +1 –

+0

Po prostu pokazywałem mu, jak to zrobić, nie myląc go zbyt wiele ... – Adidi

+1

Tak, tylko moje centy na wypadek OP uznają za mylące. –

20

tutaj przykład

<form> 
    <select name='myfield' onchange='this.form.submit()'> 
     <option selected>Milk</option> 
     <option>Coffee</option> 
     <option>Tea</option> 
    </select> 
    <noscript><input type="submit" value="Submit"></noscript> 
</form> 

Używanie tagu noscript umożliwia działanie przeglądarek, które nie obsługują JavaScript.

+8

+1 za łaskawą degradację z użytkownikami spoza js – Moses

+0

do diabła kto używa teraz 'noscript' i dlaczego ma to znaczenie? – Adidi

+0

@Adidi Zawartość wewnątrz elementu

0

Wystarczy zmiana kodu jak poniżej, nie mam sprawdzić kod, więc nie może być jakiś błąd jak kapitału/małej litery nie jestem pewien, jak, to złożyć() lub Wyślij() i tak dalej ..

<script language="javascript"> 
function submitForm(){ 
    var val = document.myform.category.value; 
    if(val!=-1){ 
     document.myform.submit(); 
    } 
} 
</script> 
<form method="post" name="myform" action="<?php echo $_SERVER['PHP_SELF'] ?>" > 

    <table class="form"> 

      <select name="category" class="formfield" id="category" onchange="submitForm();"> 
       <option value="-1"> Category </option> 
       <?php 
        $sql_contry = "SELECT * FROM category"; 
        $rs_c = mysql_query($sql_contry); 
        while ($row_c = mysql_fetch_array($rs_c)) { 
         echo '<option value="'.$row_c['category'].'">'.$row_c['category'].'</option>'; 
        } 
       ?> 
      </select> 

    </table> 

</form> 
+0

Dziękuję, ale skopiowałem i wkleiłem kod i z jakiegoś powodu go nie przesłałem. Szukałem błędów kapitału/małych liter, ale nie mogłem znaleźć żadnych. jakieś pomysły? –