2

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

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

例子:

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


另一个例子:

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

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


我想我将能够弄清楚如何在 PHP 和 SQL 中做到这一点,我只需要使用 HTML 和 jQuery:AJAX 在正确的方向上进行一些推动我希望我对我想要的脚本足够清楚去做..

提前致谢!:)

4

3 回答 3

3

假设一些像这样的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.ini 处理时,可以识别该 ID。

使用 Ajax 是可能的,但除非您根据一些非常复杂的输入场景集有数百万个问题可供选择,否则在不断从服务器获取下一个问题时会导致延迟。

于 2011-05-31T13:56:42.360 回答
1

您不必为此使用 ajax,您可以做的是在更改下拉列表时,将包含字段的 div 的 CSS 属性更改为 non display:none;

于 2011-05-31T13:48:21.767 回答
0

您也可以使用 $().show() 和 $().hide() 方法来做到这一点。您需要将 css 选择器放在要显示或隐藏的项目的 $() 括号内。这是如果你想使用 jQuery 而不是像上面建议的那样只使用 display:none。

于 2011-05-31T13:50:49.177 回答