Как сделать кроссбраузерный checkbox
есть checkbox
<input type="checkbox" name="hard_copy" OnClick="output();" > есть ajax function output() { hard_copy=document.getElementsByName('hard_copy').value; two_copy=document.getElementsByName('two_copy').value; nocache = Math.random(); http.open('get', '/chebe-kopir-pechat-zakaz.php?hard_copy='+hard_copy+'&two_copy='+two_copy+'&nocache='+nocache); http.onreadystatechange = searchNameqReply; http.send(null); } вывожу echo $hard_copy=$_POST['hard_copy']; Корректно работает только в Хроме. Т.е. постановка и снятие галки ведет к запланированному результату. В других браузерах: FF, Opera, IE выдает всегда On, true, 1, Yes...Как только не вертел... Гуглил день, не помогает... Чувствую, что checkbox иначе как то нужно обработать в ajaxe, но как? |
что такое
document.getElementsByName('hard_copy').value какое может быть у флажка значение? |
теоретически value можно указать. здесь конечно оно лишнее. думаю будет работать и совсем без этой сточки.
Если шаришь, подскажи как true/false кроссбраузерно передать в php? |
т.е. состояние чекбокса передать php скрипту?
ваш код так же остаётся (только подправьте,если что) а щас будет выводиться ваш URL. обратите внимание на hard_copy в модальном окне <input type="checkbox" name="hard_copy"> Тач ми <script> var hard_copy = document.getElementsByName('hard_copy')*!*[0]*/!*; hard_copy.*!*onchange*/!*=function(){ /*ваш код AJAX*/ alert ( "URL : \n\n "+'/chebe-kopir-pechat-zakaz.php?hard_copy='+hard_copy.checked ) } </script> |
не работает к сожалению. через IE7 даже здесь можно проверить. когда проверяю у себя IE после клика на чекбокс пишет "Неопознанная ошибка"
|
В опере тоже интересно отрабатывает! Включил вывод строки:
<script type="text/javascript"> $(document).ready(function(){ function showValues() { var str = $("form").serialize(); $("#results").text(str); } $(":checkbox, :radio").click(showValues); showValues(); }); </script> Когда галка есть выводит: &material=1&hard_copy=on&kol_files Когда нет: &material=1&kol_files при этом php отрабатывает, что hard_copy всегда в on! |
Цитата:
|
Спасибо ВСЕМ большое, разобрался :dance:
|
Часовой пояс GMT +3, время: 20:45. |