Просмотр полной версии : смена текста при нажатии на кнопку
katjuha6
03.02.2013, 02:50
всем доброго времени суток, уважаемые форумчане!
есть такой код
<?php
//$param['product_type_id'] = $product_type_id;
//$_SESSION['vmCompareBtnParam'] = $param;
?>
<div class="check">
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
//$show_checkboxes = @$_SESSION['vmCompareParam']['show_checkboxes'];
//$product_type_id = $param['product_type_id'];
$session =& JFactory::getSession();
$compare = $session->get('compare');
if(isset($compare[$product_type_id])&& is_array($compare[$product_type_id]) && in_array($product_id, $compare[$product_type_id]) )
{ $checkValue = 'checked="checked"';}
else { $checkValue = '';}
?>
<input name="compare_<?php echo $product_id ?>" id="compare_cart_<?php echo $product_id ?>" alt="<?php echo $VM_LANG->_('VM_CART_COMP')?>" title="<?php echo $VM_LANG->_('VM_CART_COMP')?>" type="checkbox" <?php echo $checkValue ?> onclick="return CompareProduct( this,<?php echo $product_type_id ?>);" class="compare_checkbox">
<?php echo "сравнить"?>
</div>
конструкция данного кода такая: чекбокс и рядом с ним текст "сравнить".
как сделать так, чтобы когда кликали по чекбоксу текст рядом с ним изменялся на "перейти к сравнению"?
Буду очень признательна за помощь =)
конструкция данного кода такая: чекбокс и рядом с ним текст "сравнить".
Сделай нормальный хтмл пример...
danik.js
03.02.2013, 15:56
onclick="nextSibling.innerHTML = 'перейти к сравнению';return Compa...
Трэш конечно... но ведь это VirtueMart ...
katjuha6
03.02.2013, 18:52
danik.js,
я сделала так
<input name="compare_<?php echo $product_id ?>" id="compare_cart_<?php echo $product_id ?>" alt="<?php echo $VM_LANG->_('VM_CART_COMP')?>" title="<?php echo $VM_LANG->_('VM_CART_COMP')?>" type="checkbox" <?php echo $checkValue ?> onclick="nextSibling.innerHTML = 'перейти к сравнению'( this,<?php echo $product_type_id ?>);" class="compare_checkbox">
если неправильно написала - поправьте, т.к. для меня php непонятен.
Если написано верно - тогда этот код не подходит. товары в сравнение не добавляются.
katjuha6
03.02.2013, 18:56
ksa,
ткните носом, где кнопка, чтобы html код вставить? в смысле, чтобы он отображался не как код, а как страница?
вообще код такой
<div class="check">
<input name="compare_65" id="compare_cart_65" alt="Сравнить" title="Сравнить" type="checkbox" onclick="return CompareProduct( this,3);" class="compare_checkbox">
Сравнить
</div>
katjuha6,
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<meta charset="utf-8" />
</head>
<body>
<div class="check" >
<input name="compare_65" id="compare_cart_65" alt="Сравнить" title="Сравнить" type="checkbox" onclick="return CompareProduct( this,3);" class="compare_checkbox">
Сравнить
</div>
<script type="text/javascript">
function CompareProduct (a) {
a.parentNode.lastChild.data = a.checked ? "Перейти к сравнению" : "Сравнить"
}
</script>
</body>
</html>
katjuha6
03.02.2013, 20:17
рони,
это код, который формируется непосредственно при выводе на страницу.
а код самой формы вот этот
<?php
//$param['product_type_id'] = $product_type_id;
//$_SESSION['vmCompareBtnParam'] = $param;
?>
<div class="check">
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
//$show_checkboxes = @$_SESSION['vmCompareParam']['show_checkboxes'];
//$product_type_id = $param['product_type_id'];
$session =& JFactory::getSession();
$compare = $session->get('compare');
if(isset($compare[$product_type_id])&& is_array($compare[$product_type_id]) && in_array($product_id, $compare[$product_type_id]) )
{ $checkValue = 'checked="checked"';}
else { $checkValue = '';}
?>
<input name="compare_<?php echo $product_id ?>" id="compare_cart_<?php echo $product_id ?>" alt="<?php echo $VM_LANG->_('VM_CART_COMP')?>" title="<?php echo $VM_LANG->_('VM_CART_COMP')?>" type="checkbox" <?php echo $checkValue ?> onclick="return CompareProduct( this,<?php echo $product_type_id ?>);" class="compare_checkbox">
<?php echo "сравнить"?>
</div>
danik.js
03.02.2013, 22:08
<?php
//$param['product_type_id'] = $product_type_id;
//$_SESSION['vmCompareBtnParam'] = $param;
?>
<div class="check">
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
//$show_checkboxes = @$_SESSION['vmCompareParam']['show_checkboxes'];
//$product_type_id = $param['product_type_id'];
$session =& JFactory::getSession();
$compare = $session->get('compare');
if(isset($compare[$product_type_id])&& is_array($compare[$product_type_id]) && in_array($product_id, $compare[$product_type_id]) )
{ $checkValue = 'checked="checked"';}
else { $checkValue = '';}
?>
<input name="compare_<?php echo $product_id ?>" id="compare_cart_<?php echo $product_id ?>" alt="<?php echo $VM_LANG->_('VM_CART_COMP')?>" title="<?php echo $VM_LANG->_('VM_CART_COMP')?>" type="checkbox" <?php echo $checkValue ?> onclick="nextSibling.innerHTML = checked ? 'перейти к сравнению' : 'сравнить';return CompareProduct( this,<?php echo $product_type_id ?>);" class="compare_checkbox"><span>сравнить</span>
</div>
katjuha6
03.02.2013, 23:05
спасибо большое, работает. =)
скажите, пожалуйста, а можно ли сделать так, чтобы при переходе по ссылке не изменялся текст.
т.е. когда переходишь по ссылке или обновляешь страницу - чекбокс "перейти к сравнению" снова изменяется на "сравнить". можно ли как-то "закрепить" это "перейти к сравнению" при переходе по ссылкам?
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot