Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка состояния checkbox. AJAX, Не могу передать состояние чекбокса 
:(
    Опции темы
Parovoz33
Дата 19.5.2007, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 18.5.2007

Репутация: нет
Всего: нет



Доброго времени суток! Господа, у меня большая проблема, которую никак не могу разрешить. В-общем есть софтина, все в ней сделано на ajax. Мне надо добавить один checkbox и передать его состояние POST'ом. Блин казалось такая тривиальная задача, а я уже которые день не могу справиться =(

В-общем, checkbox я добавил
Код

    ObjMRTableTbodyTrTdTableTbodyTr = document.createElement("tr");
    ObjMRTableTbodyTrTdTableTbodyTrTd = document.createElement("td");
    ObjMRTableTbodyTrTdTableTbodyTrTd.style.width = "90px";
    ObjMRTableTbodyTrTdTableTbodyTrTd.style.whiteSpace = "nowrap";
    ObjMRTableTbodyTrTdTableTbodyTrTd.style.fontFamily = "Arial, Helvetica, sans-serif";
    ObjMRTableTbodyTrTdTableTbodyTrTd.style.fontSize = "9pt";
    ObjMRTableTbodyTrTdTableTbodyTrTd.style.fontWeight = "bold";
    ObjMRTableTbodyTrTdTableTbodyTrTd.style.textAlign = "right";
    ObjMRTableTbodyTrTdTableTbodyTrTd.style.paddingRight = "5px";
    if (NewHeaderStyle == false) {
        ObjMRTableTbodyTrTdTableTbodyTrTd.style.borderBottom = "1px solid #ebe9e4";
    }
    ObjMRTableTbodyTrTdTableTbodyTrTd.appendChild(document.createTextNode(" "));
    ObjMRTableTbodyTrTdTableTbodyTr.appendChild(ObjMRTableTbodyTrTdTableTbodyTrTd);

    ObjMRTableTbodyTrTdTableTbodyTrTd = document.createElement("td");
    ObjMRTableTbodyTrTdTableTbodyTrTd.style.width = "70%";
    ObjMRTableTbodyTrTdTableTbodyTrTd.style.fontFamily = "Arial, Helvetica, sans-serif";
    ObjMRTableTbodyTrTdTableTbodyTrTd.style.fontSize = "9pt";
    if (NewHeaderStyle == false) {
        ObjMRTableTbodyTrTdTableTbodyTrTd.style.borderBottom = "1px solid #ebe9e4";
    }

    ObjMRTableTbodyTrTdTableTbodyTrTd.innerHTML = "<input type=\"checkbox\" name=\"MsgAnonymous\" id=\"MsgAnonymous\"><font class=\"swbold\">Send Anonymously </font>"; // Ключевая строка !!!

    ObjMRTableTbodyTrTdTableTbodyTr.appendChild(ObjMRTableTbodyTrTdTableTbodyTrTd);
    ObjMRTableTbodyTrTdTableTbody.appendChild(ObjMRTableTbodyTrTdTableTbodyTr);

    //---


На странице отображается корректно. Далее передаем информацию POST'ом. В самой программе делается это следующим образом, ну и я добавил по аналогии. Думаю кстати весь затык здесь, ибо я к сожалению не гуру JS..
Код

        // Email To/Cc/Bcc/Header fields
        POSTString += "&emailto=" + encodeURIComponent(document.getElementById("ComposeMsgTo").value);
        POSTString += "&emailpriority=0";
        POSTString += "&emailcc=" + encodeURIComponent(document.getElementById("ComposeMsgCc").value);
        POSTString += "&emailfrom=" + encodeURIComponent(document.getElementById("ComposeMsgFrom").value);
        POSTString += "&anonymous=" + encodeURIComponent(document.getElementById("MsgAnonymous").checked); // Вот эту строчку я добавил, и думаю что затык здесь.

И вот POST['anonymous'] приходит, но он всегда приходит как TRUE, внезависимости от того нажат чекбокс или нет. Я уже не знаю что делать... 
PM MAIL   Вверх
vasac
Дата 19.5.2007, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



Код

alert(document.getElementById("MsgAnonymous").checked);

что показывает?
PM WWW   Вверх
Parovoz33
Дата 21.5.2007, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 18.5.2007

Репутация: нет
Всего: нет



В-общем вышел я из положения.. 
А показывало как надо - либо false, либо true

Но скрипт все равно всегда воспринимал все как TRUE... то есть я не знаю, похоже на то что он булевские TRUE и FALSE преобразовывал в строковые "TRUE" и "FALSE"... Хз кароче. Вот как я вышел из ситуации
Код

    if (document.getElementById("MsgAnonymous").checked)    
        POSTString += "&anonymous=1";// + encodeURIComponent(document.getElementById("MsgAnonymous").checked); 
    else
        POSTString += "&anonymous=0";


страно конечно но главное работает  smile 

Всем спасибо!!
PM MAIL   Вверх
vasac
Дата 22.5.2007, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



Чего странного то?
Все параметры воспринимаются в PHP, как строки. Соответственно "anonymous=false", как непустая строка "false", приводящаяся к true
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0437 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.