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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> динамическое создание кнопок и функций, а также клики по кнопкам 
:(
    Опции темы
Sniper
Дата 3.7.2008, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



у меня вопрос не реализации в коде(как создавать элементы и как привязывать onclick я знаю):

я через ajax посылаю запрос, PHP обрабатывает и "принтит" JavaScript код... этот JavaScript код я вставляю между div'ами например обратно в страничку.

на кнопках соотвественно onclick функции.

так вообще должно работать? firebug пишет что функция неопределена....

Это сообщение отредактировал(а) Sniper - 3.7.2008, 12:59


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
bars80080
Дата 3.7.2008, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



достаточно попробовать  smile 


если бы не работало, то ты б не увидел этого форум

.innerHTML - универсальное средство
PM MAIL WWW   Вверх
Itsys
Дата 3.7.2008, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

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



вставлять js код лучше через document.write(<script></script>)
PM MAIL WWW Skype   Вверх
Sniper
Дата 3.7.2008, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

var response = req.responseText.split("|");
document.getElementById('id1').innerHTML=response[0];
document.getElementById('id2').innerHTML=response[1];


вот что принтится в php
Код

<?php
         print "<input type=\"submit\" name=\"test\" value=\"somevalue\" onclick=\"getval1(); return false;\" />";
         print "|";
         print "<script type=\"text/javascript\">";
         print "function getval1() {";
         print "alert(':-)');";
         print "}";
         print "</script>";
?>

getval1 is not define (firebug)
где же ошибка?

Это сообщение отредактировал(а) Sniper - 3.7.2008, 14:26


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
bars80080
Дата 3.7.2008, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



а ты пробовал отправить запрос на сервак вручную (через адресную строку браузера) и посмотреть что приходит в браузер?
PM MAIL WWW   Вверх
Sniper
Дата 3.7.2008, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



если я пытаюсь выполнить php скрипт который выше в браузере то всё в порядке... если я пытаюсь выполнить его через ajax из другого, то функция не найдена... вывод... почему то не записывается Javascript в страницу те не работает вот это 

Код

var response = req.responseText.split("|");
document.getElementById('id1').innerHTML=response[0];
document.getElementById('id2').innerHTML=response[1];


хотя если написать alert (response[0]+"   "+response[1]);

то всё выводится в алерт... smile 



я правильно понимаю: если сгенерированный javascript нельзя посмотреть через "Исходный код страницы" то и выполняться он не будет?

Это сообщение отредактировал(а) Sniper - 3.7.2008, 15:00


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
bars80080
Дата 3.7.2008, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



есть возможность посмотреть в сторону responseXML заместо текста, апотом попытаться добавить его в DOM, но это наверно будет геморно

более лучший вариант: средствами пхп записать файл (prom_script.js) на сервере с нужными функциями, а аяксом скинуть 
Код

<script type="text/javascript" src="http://server.ru/folder/prom_script.js">

PM MAIL WWW   Вверх
ksnk
Дата 3.7.2008, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Sniper,
Код

var response = req.responseText.split("|");
document.getElementById('id1').innerHTML=response[0];
var x;
if(x=response[1].match(/<script.*?>(.*?)<\/script>/i)){
  window.execScript('('+x[1]+')');
}

 а так?

Можно и eval'ом воспользоваться, но там можно больше гемороя поиметь...

Добавлено через 57 секунд
Цитата(Sniper @  3.7.2008,  14:42 Найти цитируемый пост)
я правильно понимаю: если сгенерированный javascript нельзя посмотреть через "Исходный код страницы" то и выполняться он не будет?

Неправильно! ;-)


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Itsys
Дата 3.7.2008, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

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



Ну можно так:
Код

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
        <meta http-equiv="Content-Language" content="ru">
        <title>Тест</title>
        <script>
            function cl(){
                document.getElementById('cont').innerHTML = "<input type=\"submit\" name=\"test\" value=\"somevalue\" onclick=\"getval1(); return false;\" />";
                sc = document.createElement("script");
                sc.text = "function getval1(){alert('ok')}";
                document.body.appendChild(sc);
            }
        </script>
    </head>
    <body>
    <div id="cont"></div>
    <button onclick="cl()"></button>
    </body>
</html>


Добавлено через 2 минуты и 52 секунды
ЗЫ Содержимое функции cl() можно выполнить и через eval

Добавлено через 3 минуты и 28 секунд
Просто надо перестроить ответ от сервера smile
PM MAIL WWW Skype   Вверх
Ghirik
Дата 5.7.2008, 07:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

я правильно понимаю: если сгенерированный javascript нельзя посмотреть через "Исходный код страницы" то и выполняться он не будет?


Не вникал особо в вопрос, возможно уже ответили. Но если у вас не глотается содержимое через innerHTML, то содержимое не является HTML. Надеюсь понятно выразился...  smile

Добавлено через 7 минут и 14 секунд
Смешно самому, цитату использовал одну, а отвечал на другое.
Когда Вы смотрите исходный код, Вы и видите исходный код. Всё что вязано с работой клиентского скрипта там не будет отражено. Для того, чтобы наблюдать html в динамике, поставьте кнопочку выводящую innerHTML из боди.


--------------------
Отдадим всё клиенту, пускай его машина мучается...

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


 




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


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

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