首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据列表中的选定内容设置复选框的值

根据列表中的选定内容设置复选框的值
EN

Stack Overflow用户
提问于 2010-07-01 15:59:56
回答 2查看 205关注 0票数 0

我在一个CMS系统的范围内工作,它定义了某些字段,可以用来在PHP应用程序中使用表单。

list函数有这样的签名:

代码语言:javascript
复制
function inputBasicList ($id,$value = "",$list = array(), $displayName = NULL, $displayLabel = true)

我就是这么用的:

代码语言:javascript
复制
$theinput = new inputBasicList("type",$therecord["paymenttype"],array("Cash"=>"cash","Credit"=>"credit"), "Payment Type");

同样,还有一个具有以下签名的复选框:

代码语言:javascript
复制
function inputCheckbox($id,$value = false, $displayName = NULL, $disabled = false, $displayLabel = true)

我就是这么用的

代码语言:javascript
复制
$theinput = new inputCheckbox("paid", $therecord["paid"], "Paid");

我想要做的是,如果列表设置为信用而不是默认现金,则自动将复选框设置为真/选中。

我不认为CMS系统允许使用任何内置函数来做到这一点,并且我对添加任何javascript都很谨慎。

仅仅使用PHP就可以做到这一点吗?

否则,javascript要做这样的事情会有多复杂呢?

编辑:

从phpBMS表单生成的超文本标记语言

代码语言:javascript
复制
<p class="big"><label for="type" class="important">Payment Type</label>
<br />
<select name="type" id="type"  class="important" > 
<option value="cash"  >Cash</option>
<option value="credit"  >Credit</option>
</select>
</p>
<p class="big">
<input type="checkbox" id="paid" name="paid" value="1" class="radiochecks"  /> 
<label id="paidLabel" for="paid" >Paid</label>
</p>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-01 16:21:16

只使用PHP是不可能做到这一点,因为PHP是在您的服务器上运行的。您需要一些在客户端运行的代码。

我相信第一个参数$id被用作元素的id属性?如果我错了,请纠正我。如果是这样,您可以使用jQuery JavaScript库执行以下操作:

代码语言:javascript
复制
jQuery(function($){
  $('#type').change(function(){
    if ($(this).val() == "credit") {
      $('#paid').attr('checked','checked');
    } else {
      $('#paid').removeAttr('checked');
    }
  });
});

UDPATE BMS正在使用Mootools,JavaScript应该喜欢这样在mootools中工作:

代码语言:javascript
复制
window.addEvent('domready', function(){
  $('type').addEvent('change',function(){
    if($(this).get('value') == 'credit') {
      $('paid').set('checked','checked');
    } else {
      $('paid').removeProperty('checked');
    }
  });
});

我推荐使用这个代码片段的mootools版本,但仅出于您的兴趣,如果您想安装jQuery,您可以将jquery.js添加到phpbms/common/javascript中。然后,您可以编辑phpbms/header.php以包含以下内容:

在最后一次$tempjsarray[]添加之后:

代码语言:javascript
复制
$tempjsarray[] = "common/javascript/jquery.js";

然后在$phpbms->showJsIncludes();之后,你需要包括这一点,这样除了mootools之外,jQuery也可以正常工作:

代码语言:javascript
复制
echo '<script type="text/javascript">jQuery.noConflict();</script>';

如果这不起作用,你应该发布html输出的样子。

票数 0
EN

Stack Overflow用户

发布于 2010-07-01 16:20:03

这在javascript中应该相当简单。您可以在列表的onchange函数上附加一个事件侦听器,并在该函数中设置checkbox的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3155984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档