Php 当复选框=默认选中时显示输入
我找到了一种方法,可以在选中复选框时显示/取消隐藏div,但在默认选中复选框时不显示/取消隐藏divPhp 当复选框=默认选中时显示输入,php,javascript,checkbox,default,show,Php,Javascript,Checkbox,Default,Show,我找到了一种方法,可以在选中复选框时显示/取消隐藏div,但在默认选中复选框时不显示/取消隐藏div <?php $checked=product_exists($row[ 'serial']) ? ' checked="checked"': ''; echo '<input type="checkbox" '. $checked . '> '. $row[ 'name'] .'<br />'; ?> 这是复选框的代码,现在我需要一些东西:
<?php
$checked=product_exists($row[ 'serial']) ? ' checked="checked"': '';
echo '<input type="checkbox" '. $checked . '> '. $row[ 'name'] .'<br />';
?>
这是复选框的代码,现在我需要一些东西:
-检查是否选中了复选框
->显示其隐藏的div
我希望有人能帮助我,谢谢
额外代码:
<?php $result=mysql_query( "select * from products"); while($row=mysql_fetch_array($result)){
?>
<div class="column">
<?php $checked=product_exists($row[ 'serial']) ? ' checked="checked"':
''; $serial=$row[ 'serial']; echo '<input type="checkbox" '. $checked .
'> '. $row[ 'name'] . ''. $serial . '<br />'; $result2=mysql_query(
"select * from productsmenus where serial = $serial"); while($row=mysql_fetch_array($result2)){ echo '<div style="'.($checked===''
? 'display: none;' : ''). '"></div>';}?>
</div>
<?php } ?>
这可能是一个临时修复:
echo '<div style="'.str_replace('checked="checked"', 'display: none;', $checked).'">';
当然,这段代码不会打断它,但它应该足以让您走上正轨。快乐编码(veel plezier,成功)只需调用在页面的onload事件中隐藏/显示div的相同函数即可。我假设此函数检查复选框的状态,并适当地隐藏/显示div。或者,您可以根据$checked
的值向隐藏的div添加一个类。i、 e.if(strlen($checked)){echo“show”}else{echo“hide”}
我想在选中复选框时显示div。因此,当选中复选框时,他们可以填写其他信息。我知道你来自比利时,所以我猜你可以阅读文本,这是人们可以从中选择项目的网站:partycatering,当从那里选择产品时,它将在联系人页面上显示为选中复选框。当一个被选中时,它应该显示他们可以填写的附加信息。就像饮料一样,另外两个复选框会显示啤酒、咖啡等。科林:使用第二个echo
片段,然后,如果$checked
变量为空,则复选框未选中,您可以隐藏div。我想这就是我问题的答案,现在我必须找出如何放置产品的“产品”在div@colin:远远领先于你。。。添加了一个基本的ajax设置来实现这一点(确定选中了哪个复选框,将数据发送到服务器,以便它可以发回子产品)我还没有尝试过你的方法,但我想知道这是否可行?如果没有,我会给你一个尝试虽然我不是真的有经验的代码是在原来的帖子底部,想法是选择每个产品的相应项目,并作出一个隐藏的div,只有当选中时才显示(像你原来的一个)PS:代码是一个混乱,但可能它包含一些东西,可能会工作
echo '<div style="'.($checked === '' ? 'display: none;' : '').'">';
document.body.addEventListener('change', function(e)
{
var div, checkboxTxt, xhr
target = e.target || e.srcElement;
if (target.tagName.toLowerCase() !== 'input' || target.type !== 'checkbox')
{//value of a non-checkbox changed, ignore event
return e;
}
checkboxTxt = target.parentNode.innerText.replace(/[^a-z ]/gi, '').trim();
if (target.checked === false)
{//checkbox was unchecked --> hide div
div = document.getElementBy(checkboxTxt);
div.parentNode.removeChild(div);
return e;
}
//add div: checkbox was checked
xhr = new XMLHttpRequest();
xhr.open('post', 'your/ajax/url', true);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');|
xhr.onreadystatechange = function()
{//things to do with server data
if (this.readyState === 4 && this.status === 200)
{//call complete
div = document.getElementById(checkboxTxt);//assuming it's hidden... you can create a new element here, too if you like
div.style.display = 'block';
div.innerHTML = this.responseText;//or, if it's a JSON object, parse and get the things you need to build the html...
}
};
xhr.send(JSON.stringify({checkbox:checkboxTxt});
}, false);