动态表格 - php

我想创建一个执行以下操作的脚本:

通过单选,下拉菜单或复选框回答问题时,脚本会检查
选择单选按钮(或下拉菜单,或除文本和textarea以外的任何表单元素)时,它会检查给定的选项是否会使脚本提出更多问题。

例:

“给我回叫”前面的复选框,选中后会显示另外2个字段(包含所有可用国家/地区的下拉列表以及其电话号码的文本字段)

另一个例子:

(假设我们是最终用户IT支持)

用户可以在下拉菜单中选择要支持的主题(即硬件,软件)。然后,当用户选择一个主题时,它将显示一个带有更多主题的附加字段(例如:当用户选择硬件时,他们会得到电话,计算机等),而该字段又显示了序列号(可能是操作系统)的附加字段依此类推

我想我将能够弄清楚如何在PHP和SQL中做到这一点,我只需要在正确的方向使用HTML和jQuery:AJAX
我希望我对脚本要做什么有足够的了解。

提前致谢! 🙂

参考方案

假设这样的html结构:

<div id="question-1" class="top-question">
    What do you want?<br>
    <select>
        <option value='thing'>thing</option>
        <option value='item'>item</option>
    </select>
    <div id="question-1a" class="sub-question">
        How many of them?<br>
        <select>
            <option value='5'>five</option>
            <option value='10'>ten</option>
        </select>
    </div>
</div>

并使用jQuery库(在这种情况下使工作变得更轻松),您可以执行以下操作:

$('.sub-question').hide()
$('.top-question').bind('change',function(){
    $('.sub-question').show()
})

如此处所示:http://jsfiddle.net/xtUk6/

这里不需要Ajax。这个概念是您在页面上拥有所有表单字段,只是从视觉上将其删除。然后,每个问题都有它自己的唯一ID,当表单回发到服务器并由php处理时,可以识别该ID。

可以使用Ajax,但是除非您根据一些非常复杂的输入方案来选择数百万个问题,否则它将不断导致从服务器不断获取下一个问题的过程中引起延迟。

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…

PHP PDO组按列名称查询结果 - php

以下PDO查询返回以下结果:$db = new PDO('....'); $sth = $db->prepare('SELECT ...'); 结果如下: name curso ABC stack CDE stack FGH stack IJK stack LMN overflow OPQ overflow RS…

PHP:对数组排序 - php

请如何排序以下数组Array ( 'ben' => 1.0, 'ken' => 2.0, 'sam' => 1.5 ) 至Array ( 'ken' => 2.0, 'sam' => 1.5, 'ben' =&…

我无法发出警报。我想念什么? - php

我无法发出警报。我想念什么?(下面的代码在WP插件内部)<?php wp_enqueue_script('jquery'); ?> <script type="text/javascript"> jQuery('#myTest').click(function(){alert…

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…