|
|
|
ajax опрос
|
|||
|---|---|---|---|
|
#18+
Подскажите, есть код опроса, но он не работает в IE, "Для выбора одного варианта ответа на вопрос я использовал элемент управления "radio button". Для того чтобы объединить несколько таких элементов в группу, им нужно назначить одинаковое значение атрибута name. Я выбрал значение "rdChoice". Итак, я создавал элемент input и после этого устанавливал у него name, равное "rdChoice". Проблема в том, что Internet Explorer не позволяет устанавливать значение атрибута name после того, как элемент уже был создан. Что же делать?" ____________________________ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <script type="text/javascript" src="dojo.js" djConfig="parseOnLoad:true, isDebug:false, usePlainJson:true"></script> </head> <body> <!-- Голосование --> <div id="voting"> <form id="vote_form" method="post"> Нравится блог? <br /> <input type="radio" name="answer" value="yes" checked="checked" /> Да <input type="radio" name="answer" value="no" /> Нет <br /> <input type="button" value="Проголосовать" id="vote_btn" /> <br /> <input type="button" value="Показать результаты" id="res_btn" /> </form> </div> <!-- /Голосование --> <!-- Dojo код --> <script type="text/javascript"> dojo.addOnLoad(function() { var vote_btn = dojo.byId("vote_btn"); var res_btn = dojo.byId("res_btn"); var yes_answer = 0; var no_answer = 0; var just_results = true; // true, если пользователь нажал на кнопку "Показать результаты" dojo.connect(vote_btn, "onclick", function() { // Передаем форму PHP-скрипту dojo.xhrPost({ url: "vote.php", content: {act: 'vote'}, form: "vote_form", handleAs: "json", load: function(response, ioArgs) { yes_answer = response.yes_answer; no_answer = response.no_answer; just_results = false; res_btn.click(); return response; }, error: function(response, ioArgs) { console.error("HTTP status code: ", ioArgs.xhr.status); return response; } }); }); dojo.connect(res_btn, "onclick", function() { if (just_results) { // Вызываем PHP-скрипт для извлечения результатов голосования dojo.xhrPost({ url: "vote.php", handleAs: "json", load: function(response, ioArgs) { yes_answer = response.yes_answer; no_answer = response.no_answer; show_vote_results(yes_answer, no_answer); return response; }, error: function(response, ioArgs) { console.error("HTTP status code: ", ioArgs.xhr.status); return response; } }); } else { show_vote_results(yes_answer, no_answer); } }); }); // Функция для вывода результатов голосований function show_vote_results(yes_answer, no_answer) { dojo.byId("voting").innerHTML = "Результаты голосования:<br />Да: " + yes_answer + "<br />Нет: " + no_answer; } </script> <!-- /Dojo код --> </body> </html> ____________________________ нашел и Функцию, которая создает элементы с заданным атрибутом name в любом браузере ____________________________ //функция возвращает новый элемент с установленным аттрибутом name function createNamedElement(type, name) { var element = null; // Попытка создать элемент в стиле IE. Она будет неудачной в большинстве браузеров try { element = document.createElement('<'+type+' name="'+name+'">'); } catch (e) { } if (!element || element.nodeName != type.toUpperCase()) { // Для не IE; использование стандартного метода создания элемента element = document.createElement(type); element.setAttribute("name", name); } return element; } ____________________________ тока как ее связать с кодом опроса ума не приложу. Подскажите кто соображает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 11:19 |
|
||
|
ajax опрос
|
|||
|---|---|---|---|
|
#18+
для начала нужно оформить код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 12:42 |
|
||
|
ajax опрос
|
|||
|---|---|---|---|
|
#18+
зыдля начала нужно оформить код А можно поподробнее? К этому опросу еще файл обработки такого содержания: <? // Читаем результаты голосования из файла @$f = fopen('vote.dat', 'r'); if ($f) { @$yes_answer = trim(fgets($f)); @$no_answer = trim(fgets($f)); @fclose($f); } // Делаем инкремент варианта, если пользователь голосует if ($_REQUEST['act'] == 'vote') { if ($_REQUEST['answer'] == 'yes') { $yes_answer++; } elseif ($_REQUEST['answer'] == 'no') { $no_answer++; } } // Записываем результаты голосования в файл @$f = fopen('vote.dat', 'w'); if ($f) { @flock($f, LOCK_EX); @fwrite($f, $yes_answer."\r\n"); @fwrite($f, $no_answer); @flock($f, LOCK_UN); @fclose($f); } // Возвращаем результаты голосования в формате JSON echo "{'yes_answer': '".intval($yes_answer)."', 'no_answer': '".intval($no_answer)."'}"; ?> _________________________ но я так понимаю скрипт для проверки браузера нужно вставлять в первый файл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 12:54 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=36007813&tid=1454780]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
165ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 428ms |

| 0 / 0 |
