Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当复选框=默认选中时显示输入_Php_Javascript_Checkbox_Default_Show - Fatal编程技术网

Php 当复选框=默认选中时显示输入

Php 当复选框=默认选中时显示输入,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 />'; ?> 这是复选框的代码,现在我需要一些东西:

我找到了一种方法,可以在选中复选框时显示/取消隐藏div,但在默认选中复选框时不显示/取消隐藏div

<?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);