2013-03-18 4 views
0

Я нашел способ показать/показать div, когда флажок установлен, но не тогда, когда флажок установлен по умолчанию.Показать ввод, когда флажок = проверен по умолчанию

<?php 
    $checked=product_exists($row[ 'serial']) ? ' checked="checked"': ''; 
    echo '<input type="checkbox" '. $checked . '> '. $row[ 'name'] .'<br />'; 
?> 

Это код, который проверяет коробки, теперь мне нужно что-то: -check если флажок -> показать ее скрытые 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 } ?> 
+2

просто вызовите ту же функцию, которая скрывает/показывает div в событии onload на странице. Я предполагаю, что эта функция проверяет состояние флажка и прячет/показывает div соответствующим образом. – GarethL

+0

или вы можете добавить класс к скрытому div в зависимости от значения '$ checked'. то есть 'if (strlen ($ checked)) {echo" show "} else {echo" hide "}' – AlexP

ответ

0

, возможно, это может быть темп-фикс:

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

Если я не ошибаюсь, это ваш вопрос, не так ли? скрыть div, если флажок установлен. Другой путь вокруг довольно легко, тоже:

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

Но чтобы быть честно, я не думаю, что вы собираетесь в этом правильном пути. Правда, я не знаю, что именно вы пытаетесь сделать точно, но все же. Вы - «здание» ваша страница, но вы все еще должны проверить, существует ли данный продукт?
Возможно, посмотрите на способ получения всех данных, поэтому вы можете передать массив продуктов на какой-то шаблонный скрипт, как это принято в большинстве современных фреймворков.

Update:
После просмотра на вашем сайте, вы можете быть лучше использовать 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)

+0

Я хочу показать div, когда установлен флажок. Поэтому, когда флажок установлен, они могут заполнить дополнительную информацию. Я вижу, что вы из Бельгии, поэтому, я думаю, вы можете прочитать текст, это сайт http://colinch.com/52/contact.php Люди могут выбирать предметы из: partycatering и когда продукт оттуда выбран он появится как установленный флажок на странице контактов. И когда один из них проверен, он должен отображать дополнительную информацию, которую они могут заполнить. Как и для напитков, еще два флажка будут отображаться как «Пиво, кофе» и т. Д. – colin

+0

@colin: используйте второй фрагмент «эхо», если переменная '$ checked' пуст, флажок не установлен, и вы можете скрыть div. –

+0

Я думаю, что это ответ на мой вопрос, теперь я должен узнать, как поставить «продукты» продукта в div – colin

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