在选择下拉值时尝试运行PHP操作


Attempting to run a PHP action when dropdown value is selected

如果选择了某个下拉选项,我正试图回显一个新的表单下拉菜单。这是我目前运行的代码,但没有结果:

        <p><span>Hogskole</span><select id="selectbasic" name="Universitet"></p>

                        <option value=1>Høgskolen i Lillehammer</option>
                        <option value=2>Høgskolen i Gjøvik</option>
                        <option value=3>Høgskolen i Hedmark</option>
                 <?php switch($_POST['Universitet']){ 
                    case 'Høgskolen i Hedmark':
                    echo '<p><span>Hogskole</span><select name="Universitet"></p>
                            <option>Option One</option>
                            <option>Option Two</option>
                            <option>Option Three</option>';
                    break;
                    default:
                    break;
                 }
                 ?>

Php不是用于客户端处理的事件驱动语言,您必须使用jquery和AJAX

<script>
function changeState(){
var countryId='';
selectId=$("#selectbasic").val();
$.ajax({
   url: 'getStateList.php',
   type:'post',
   data: {
      selectId: selectId
   },   
   success: function(data) {
       $("#state").html(data);
   },
});
}
</script>

$_POST变量采用选项值。

So Use this code 
 case 3 :
Remove 
case 'Høgskolen i Hedmark':

$_POST变量将保存选项值。代替

case 'Høgskolen i Hedmark':

使用

case 3:

我通常避免在选择选项中使用数字/ids值,因为它们很难被遵循。您可以考虑用一个字符串来更改它,例如:

<select id="selectbasic" name="Universitet"></p>
    <option value="Lillehammer">Høgskolen i Lillehammer</option>
    <option value="Gjøvik">Høgskolen i Gjøvik</option>
    <option value="Hedmark">Høgskolen i Hedmark</option>
</select>
<?php 
  switch($_POST['Universitet']) { 
     case 'Hedmark':
         echo '<p><span>Hogskole</span><select name="Universitet">
                   <option>Option One</option>
                   <option>Option Two</option>
                   <option>Option Three</option>
               </select></p>';
         break;
     case 'Lillehammer':
     default:
         // echo something else
  }
?>

只有在设置数据之前将表单提交到当前页面,才可以使用这种行为。否则,您必须去搜索javascript事件。