设置基于一个复选框的值是什么在列表中选择(Setting the value of a checkb

2019-10-24 01:51发布

我在一个CMS系统,它定义了某些字段可用于制造在PHP应用程序中使用形式的限制工作。

该列表功能有签名:

function inputBasicList ($id,$value = "",$list = array(), $displayName = NULL, $displayLabel = true)

我用它正是如此:

$theinput = new inputBasicList("type",$therecord["paymenttype"],array("Cash"=>"cash","Credit"=>"credit"), "Payment Type");

同样,有一个复选框,其中有签名:

function inputCheckbox($id,$value = false, $displayName = NULL, $disabled = false, $displayLabel = true)

我用它正是如此

$theinput = new inputCheckbox("paid", $therecord["paid"], "Paid");

我想什么做的,就是如果列表设置为信用而不是默认的现金,以自动设置复选框以真/检查。

我不认为CMS系统允许的方式来做到这一点使用任何内置的功能,并且很谨慎添加任何JavaScript的。

这样的事情可能只用PHP?

否则,如何将复杂的JavaScript必须做这样的事情?

编辑:

从phpBMS形式生成的HTML

<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>

Answer 1:

这是不可能做这样的事情,只有PHP,因为PHP的服务器上运行。 您需要在客户端上运行的一些代码。

我认为,第一paramater $id作为id的元素属性? 如果我错了,纠正我。 如果是这样,你可以做使用jQuery JavaScript库如下:

jQuery(function($){
  $('#type').change(function(){
    if ($(this).val() == "credit") {
      $('#paid').attr('checked','checked');
    } else {
      $('#paid').removeAttr('checked');
    }
  });
});

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

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 /普通/ JavaScript的 。 然后,你可以编辑phpbms / header.php中包括这样的:

最后经过$tempjsarray[]地址:

$tempjsarray[] = "common/javascript/jquery.js";

然后后$phpbms->showJsIncludes(); 您需要包括这一点,所以jQuery的原理没有问题,除了mootools的:

echo '<script type="text/javascript">jQuery.noConflict();</script>';

如果这不起作用,你应该张贴HTML输出是什么样子。



Answer 2:

它应该是在JavaScript相当容易。 您可以在列表的功能电平变化附加一个事件侦听器,并设置复选框的值在该函数。



文章来源: Setting the value of a checkbox based on what is selected in a list