2010-07-01 2 views
0

Я работаю в рамках системы 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) 

I использовать его таким образом

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

Что я хотел бы сделать, это если в списке установлен кредит вместо денежных средств по умолчанию, чтобы автоматически установить флажок в true/checked.

Я не думаю, что система CMS позволяет сделать это с помощью любых встроенных функций, и я опасаюсь добавления любого javascript.

Возможно ли это с помощью всего лишь PHP?

В противном случае, насколько сложным был бы javascript для выполнения такой вещи?

редактировать:

Сгенерированный HTML из phpBMS образует

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

ответ

0

Это невозможно сделать только с PHP, потому что PHP работает на вашем сервере. Вам нужен код, который запускается на клиенте.

Я считаю, что первый параметр $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/common/javascript.После этого вы можете редактировать phpbms/header.php включить этот:

после последнего $tempjsarray[] добавить:

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

затем после $phpbms->showJsIncludes(); вам нужно включить это, так JQuery работает без проблем, кроме MooTools:

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

Если это не сработает, вы должны указать, как выглядит выход html.

+0

Привет, да $ id относится к имени поля. Я не могу просто импортировать jquery в существующую систему CMS, хотя .... – Jacob

+0

почему вы не можете это сделать? Я работал с большим количеством CMS, и все они позволяют использовать любой javascript, который вы хотите! Какую CMS вы используете? – jigfox

+0

его BMS больше, чем CMS, phpBMS. вот шаблон для формы: http://www.phpbms.org/browser/trunk/phpbms/modules/sample/sampletable_addedit.php Я не думаю, что могу просто включить jquery легко – Jacob

0

Это должно быть довольно легко в JavaScript. Вы можете присоединить прослушиватель событий к функции onchange списка и установить значение флажка в этой функции.

+0

Это не стандартный HTML-список, а настраиваемый список, определенный CMS. Я не думаю, что могу приложить слушателя. – Jacob

Смежные вопросы

 Смежные вопросы