0

チェックボックスがチェックされているときに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 } ?>
4

1 に答える 1

0

おそらくこれは一時的な修正である可能性があります:

echo '<div style="'.str_replace('checked="checked"', 'display: none;', $checked).'">';

私が間違っていなければ、これはあなたの質問ですね。チェックボックスがオンの場合、div を非表示にします。逆の方法もかなり簡単です。

echo '<div style="'.($checked === '' ? 'display: none;' : '').'">';

しかし、率直に言って、あなたがこれを正しい方法で行っているとは思いません。確かに、あなたが何をしようとしているのか正確にはわかりませんが、それでも. ページを「構築」していますが、特定の製品が存在するかどうかを確認する必要がありますか?
おそらく、すべてのデータを取得する方法を調べて、今日のほとんどのフレームワークで慣例となっているように、製品の配列をある種のテンプレート スクリプトに渡すことができます。

更新:
あなたのサイトを見た後、JS と AJAX 呼び出しを使用する方が良いかもしれません:

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

もちろん、このスニペットだけでは十分ではありませんが、軌道に乗るには十分なはずです。幸せなコーディング (veel plezier, en succes)

于 2013-03-18T12:53:47.013 に答える