Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: не работает скрипт обработки checkbox - ов

Сообщения:  [1-10]   [11-15] 

 
 автор: varvar   (29.07.2009 в 19:11)   письмо автору
 
   для: ride   (29.07.2009 в 19:03)
 

Всё заработало!!! Огромное спасибо!!! Я действительно тупил...

  Ответить  
 
 автор: ride   (29.07.2009 в 19:03)   письмо автору
 
   для: varvar   (29.07.2009 в 18:54)
 

смотрите:
у вас есть элементы:

<input type="checkbox" id="box1">
<input type="checkbox" id="box2">
<input type="checkbox" id="box4">
<input type="checkbox" id="box5">

в цикле document.getElementById('box'+i) пытается работать с
<input type="checkbox" id="box0">
<input type="checkbox" id="box1">
<input type="checkbox" id="box2">
<input type="checkbox" id="box3">

но у вас нет элементов с айди box0, box3
То есть логика в пхп и в яваскрипте у вас разная.
самый просто вариант для вас - это поменять пхп:

<?php
$i
=0;
while (
$myrow mysql_fetch_assoc($result2)) { // перебираем все значения массива
print "<input type='checkbox' name='box$myrow[PublishLocationRecID]' value='$myrow[PublishLocationEnglish]' id='[b]box$i[/b]' onClick='return union_chbox()'>
$myrow[PublishLocationEnglish]";
$i++;

  Ответить  
 
 автор: varvar   (29.07.2009 в 18:54)   письмо автору
 
   для: ride   (29.07.2009 в 18:41)
 

Наверно я вас не совсем понимаю... Вы имеете в виду то что ID в цикле пхп идут не по порядку? Если да то я пробовал и с другой таблицей и тот же результат...
Подскажите если не трудно,а то меня по видимому заклинило и может я не вижу очевидных вещей.

  Ответить  
 
 автор: ride   (29.07.2009 в 18:41)   письмо автору
 
   для: varvar   (29.07.2009 в 18:29)
 

не хочется вам давать готовый ответ.
посмотрите внимательнее:
у вас получилось 4 чекбокса:
<input type='checkbox' name='box1' value='Phone Book' id='box1' onClick='return union_chbox()'>Phone Book
<input type='checkbox' name='box2' value='Newspaper' id='box2' onClick='return union_chbox()'>Newspaper
<input type='checkbox' name='box4' value='Magazine' id='box4' onClick='return union_chbox()'>Magazine
<input type='checkbox' name='box5' value='Internet' id='box5' onClick='return union_chbox()'>Internet

задайте себе вопрос: "Почему у них такие ID"?
далее посмотрите на свой яваскрипт цикл
for (i = 0; i<4; i++) {
// если чекбокс выбран
if (document.getElementById('box'+i).checked) {
// записываем в переменную
values = values+document.getElementById('box'+i).value+";";
}} 

какие у вас тут айдишники?
делайте выводы

  Ответить  
 
 автор: varvar   (29.07.2009 в 18:36)   письмо автору
 
   для: varvar   (29.07.2009 в 18:29)
 

дебаггер пишет : if (document.getElementById('box'+i).checked) is null

  Ответить  
 
 автор: varvar   (29.07.2009 в 18:29)   письмо автору
 
   для: varvar   (29.07.2009 в 18:17)
 

поправил цикл PHP,чекбоксов стало 4, но ява скрипт всё равно не цепляется.... вот исходник:

<?php
include ('dbIncl.php');
//$all_value=array(Вариант1,Вариант2,Вариант3,Вариант4);
     
      
mysql_select_db($database$db);
      
$sql2"SELECT PublishLocationRecID,PublishLocationEnglish FROM t_publish_location ";
        
$result2     mysql_query($sql2);
      
$count mysql_num_rows($result2);
      
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <title>test</title>
            <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML; CHARSET=utf-8">
<script type='text/javascript'>
function union_chbox() {
// определим переменную
values="";
for (i = 0; i<<?php echo $count;?>; i++) {
// если чекбокс выбран
if (document.getElementById('box'+i).checked) {
// записываем в переменную
values = values+document.getElementById('box'+i).value+";";
}}
// записываем значения в обычный инпут
document.getElementById('values_str').value = values;
return (true);
}
</script>
</head>
<body>
<form name="formname" action="#">
<?php
while ($myrow mysql_fetch_assoc($result2)) { // перебираем все значения массива
print "<input type='checkbox' name='box$myrow[PublishLocationRecID]' value='$myrow[PublishLocationEnglish]' id='box$myrow[PublishLocationRecID]' onClick='return union_chbox()'>
$myrow[PublishLocationEnglish]";
}
?>
<!----Сюда записываем все ВЫБРАННЫЕ Значения---->
<input type="text" name="values" id="values_str" size="60" value=""/>
</form>
</body>
</html>


а вот то что видит браузер:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <title>test</title>
            <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML; CHARSET=utf-8">
<script type='text/javascript'>
function union_chbox() {
// определим переменную
values="";
for (i = 0; i<4; i++) {
// если чекбокс выбран
if (document.getElementById('box'+i).checked) {
// записываем в переменную
values = values+document.getElementById('box'+i).value+";";
}}
// записываем значения в обычный инпут
document.getElementById('values_str').value = values;
return (true);
}
</script>
</head>
<body>
<form name="formname" action="#">
<input type='checkbox' name='box1' value='Phone Book' id='box1' onClick='return union_chbox()'>Phone Book
<input type='checkbox' name='box2' value='Newspaper' id='box2' onClick='return union_chbox()'>Newspaper
<input type='checkbox' name='box4' value='Magazine' id='box4' onClick='return union_chbox()'>Magazine
<input type='checkbox' name='box5' value='Internet' id='box5' onClick='return union_chbox()'>Internet
<!----Сюда записываем все ВЫБРАННЫЕ Значения---->

<input type="text" name="values" id="values_str" size="60" value=""/>
</form>
</body>
</html>

  Ответить  
 
 автор: varvar   (29.07.2009 в 18:17)   письмо автору
 
   для: sim5   (29.07.2009 в 18:03)
 

а и верно...спасибо щас попробую

  Ответить  
 
 автор: sim5   (29.07.2009 в 18:03)   письмо автору
 
   для: varvar   (29.07.2009 в 17:52)
 

Понять не можете? А это вот от этого:
$myrow = mysql_fetch_array($result2); - уже извлекли строку из ресурса, а потом еще раз mysql_fetch_array() (в конце кода) делаете, но указатель то где будет при этом?
И вообще, переписать все, достаточно один раз и одного цикла while. И mysql_fetch_assoc() вместо mysql_fetch_array().

  Ответить  
 
 автор: varvar   (29.07.2009 в 17:52)   письмо автору
 
   для: ride   (29.07.2009 в 17:47)
 

я это тоже вижу и не могу понять где беда... в базе 4 записи

  Ответить  
 
 автор: ride   (29.07.2009 в 17:47)   письмо автору
 
   для: varvar   (29.07.2009 в 17:43)
 

у вас чекбоксов три, а в функции - 4

  Ответить  

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования