2013-04-26 2 views
6

Я пытаюсь не иметь кнопку отправки, есть ли способ, который форма может отправить, когда пользователь выбирает значение?PHP Submit on Select

<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

Да, используя javascript! – adeneo

+0

Для этого вам нужно будет использовать Javascript. –

+0

Используйте javascript. Аналогичный пример можно найти здесь: http://stackoverflow.com/questions/10021848/enable-disable-submit-button-if-checkbox-is-checked-unchecked –

ответ

2

Да - использовать JavaScript:

Html:

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

ЯШ:

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

Вам действительно нужно заставить функцию js принять аргумент или что-то еще сделайте это действительно полезным. Вы не можете добавить 2 списка с этим :). +1 –

+0

Я просто показывал ему, как это сделать, не слишком запутывая его ... – Adidi

+1

Да, просто мои центы в случае, если ОП найдет это сбивающим с толку. –

20

Вот пример

<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> 

Использование тега noscript позволяет браузерам, которые не поддерживают JavaScript, все еще работают.

+8

+1 для изящного деградации с пользователями не-js – Moses

+0

, которые, черт возьми, используют 'noscript' сегодня и почему здесь это актуально? – Adidi

+0

@Adidi Содержимое внутри элемента

0

Просто измените код, как показано ниже, я не проверить код, так что может быть какая-то ошибка, как капитал/маленькой буквы я не уверен, как, это представить() или Submit() и так далее ..

<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

Спасибо, но я скопировал и вставил код, и по какой-то причине он не отправляется. Я искал ошибки в столице/маленькой букве, но не смог найти их. Есть предположения? –