Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选中php if复选框<;选择>;列表出现_Javascript_Jquery_Html - Fatal编程技术网

Javascript 选中php if复选框<;选择>;列表出现

Javascript 选中php if复选框<;选择>;列表出现,javascript,jquery,html,Javascript,Jquery,Html,我有以下问题,伙计们,我创建了一个带有ckeckbox的简单页面,我想要当复选框被选中时,出现一个(列表),如果没有选中,则出现列表2,而不使用sumbit <body> <input type="checkbox1" name="ckeck"> <?php if checkbox1 is ckecked { ?> <select name="list" size="1"> <option value=

我有以下问题,伙计们,我创建了一个带有ckeckbox的简单页面,我想要当复选框被选中时,出现一个(列表),如果没有选中,则出现列表2,而不使用sumbit

<body>
    <input type="checkbox1" name="ckeck">
    <?php if checkbox1 is ckecked { ?>
    <select name="list" size="1">
        <option value="0">0</option>
        <option value="1">1</option>
    </select>
    <?php } else { ?>
    <select name="list2" size="1">
        <option value="12">12</option>
        <option value="25">25</option>
    </select>
    <?php } ?>
</body>

0
1.
12
25

我希望代码能提供更多帮助……

如果您希望在不使用提交的情况下显示列表(这意味着在单击复选框时它会出现),则需要使用Javascript等语言,而不是PHP。PHP只能控制发送到客户端的输出,一旦它显示在浏览器中的客户端上,您就需要客户端语言来进行更改

我强烈建议您使用一个库来完成这项工作,因为这将处理很多您需要手动完成的工作。如果你想使用你的代码,可能看起来像


$(函数(){
$(“#列表”).hide();
$(“#ckeck”).change(function(){
如果($(this).is(“:checked”)){
$(“#列表”).show();
$(“#列表2”).hide();
}
其他的
{
$(“#列表”).hide();
$(“#列表2”).show();
}
});
});
0
1.
12
25
尝试使用类似的:

$('#checkbox1')。更改(函数(){
$(“选择[name='list'])。切换(this.checked);
$(“选择[name='list2'])。切换(!this.checked);
});

0
1.
12
25

PHP无权访问DOM;您将需要JavaScript来实现这一点。如果您必须使用PHP对复选框做出反应,那么您需要考虑使用AJAX。基本上,您将使用JavaScript(理想情况下是jQuery)来响应立即复选框事件,该事件将使用AJAX与PHP脚本通信。PHP脚本将返回某种类型的数据。数据可以是包含列表数据的JSON(我推荐这一个),可以是要执行的原始JavaScript代码,也可以只是返回一个布尔值来确定列表是否显示。这些只是一些想法

如果这不是一个安全问题,您可以将所有PHP逻辑移到客户端,并用JavaScript完成所有操作。您可能会有更好的用户体验,并且有可能减少服务器压力


tl;dr:改用JS。否则,请使用JS处理复选框事件、针对PHP脚本的AJAX、PHP生成数据、JS解释结果。

请花时间正确格式化代码。它可以让其他人更快地阅读和帮助您。您正在尝试的内容在PHP中是不可能实现的。寻找javascipt解决方案。@Aris,没有什么不可能的,我们可以在选中复选框时重新加载页面:)@vp_arth我认为OP不想刷新页面。您打算如何在重新加载后保持检查状态?@Aris,只需将其呈现为已检查状态:
如果我使用javascript,我可以将结果发送到my文件,并使用php获取结果并使用它们吗?@TLSK,不,您使用javascript,用于直接DOM modyfying非常感谢@JDT的回答