实时更新变量取决于表单选择

时间:2016-11-05 13:18:07

标签: javascript php jquery html ajax

我目前有以下表格:

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
            <label for="categorie"> Tipul testului</label><br>
            <select name="categorie" class="selectpicker">
                <option value="1">Geometrie</option>
                <option value="2">Algebră</option>
            </select><br><br>
            <label for="cerinta"><span class="glyphicon glyphicon-pencil"></span> Cerinţă</label>
            <textarea type="text" class="form-control" id="cerinta" name="cerinta" placeholder="Cerinţă"></textarea>
            <br>
            <label for="rezolvare"><span class="glyphicon glyphicon-pencil"></span> Rezolvare</label>
            <textarea type="text" class="form-control" id="rezolvare" name="rezolvare" placeholder="Rezolvare"></textarea>
            <br>
            <label for="nr_raspunsuri"><span class="glyphicon glyphicon-pencil"></span> Număr de raspunsuri</label>
            <select class="selectpicker" name="nr_raspunsuri">
                <option value="1">1</option>
                <option value="2">2</option>                
            </select>
            <br>


            <table class="table">
                    <tr>
                        <td class="col-md-6">
                            <button type="submit" class="btn btn-success btn-block" name="btn-add"><span class="glyphicon glyphicon-off"></span> Adăugare</button>
                        </td>
                            <td class="col-md-6">
                            <input type = "reset" class="btn btn-danger btn-block " label="Resetare"/>
                        </td>
                    </tr>
                </table>
        </form> 

我要做的是将名为$nr_raspunsuri的变量设置为12,具体取决于用户的选择而不刷新页面。

例如,如果他在第二个选择字段中选择2,我想设置变量$nr_raspunsuri = 2,这样我就可以在表单中再显示一个if的输入字段在PHP中。我认为这只能通过AJAX实现。这是真的吗?如果是的话,你会怎么做?

1 个答案:

答案 0 :(得分:2)

php中的if在重新加载页面之前不会再次运行。您可以通过使用javascript切换视图来实现它 - 当从第一个选择中选择值为1的选项时,隐藏不应该看到的元素,如果选择了值为2的选项则显示它。您可以使用change事件来实现它。