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

HTML+CSS+JavaScript

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Как .innerHTML присвоить данные из php
 
 автор: btr   (05.03.2012 в 00:46)   письмо автору
 
 

Как свойству элемента .innerHTML присвоить данные из php (результат работы скрипта, значение переменной или еще как-то??)

как кроме через форму передать данные в скрипт php? (есть ли такая возможность?)

Пожалуйста помогите

  Ответить  
 
 автор: task   (05.03.2012 в 01:33)   письмо автору
 
   для: btr   (05.03.2012 в 00:46)
 

По "волшебному клику"? Что вы хотите сделать? Если на клиенте по выбору эти даннные должы появиться, то готовя страницу на сервере, запишите эти значения в JS переменные, а затем используйте:

<script type="text/javascript">
var n = <?php echo 123?>;
var s = "<?php echo 'Text'?>";
....
</script>

  Ответить  
 
 автор: Sergeich   (05.03.2012 в 01:40)   письмо автору
 
   для: task   (05.03.2012 в 01:33)
 

Это бессмысленно, Ajax технологию надо использовать.

  Ответить  
 
 автор: task   (05.03.2012 в 02:41)   письмо автору
 
   для: Sergeich   (05.03.2012 в 01:40)
 

Почему бессмысленно, если ни вы, ни я толком не знаем чего хотят? Может человеку простое нужно, а вы предлагаете это решать целой технологией.

  Ответить  
 
 автор: Sergeich   (05.03.2012 в 03:22)   письмо автору
 
   для: task   (05.03.2012 в 02:41)
 

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

  Ответить  
 
 автор: task   (05.03.2012 в 03:41)   письмо автору
 
   для: Sergeich   (05.03.2012 в 03:22)
 

Какие ошибки? В честь чего не передаст? Я так понимаю, человеку нужны значения переменных, а не их имена, это раз. А про "безперезагрузки", что-то я не вижу этого.

  Ответить  
 
 автор: btr   (05.03.2012 в 10:49)   письмо автору
 
   для: task   (05.03.2012 в 03:41)
 

Ситуация такая:
есть обработчик события онклик на js.

есть скрипт на php достающий из мускула данные по запросу.
в принципе, он же с помощью echo выводит таблицу с этими данными. НО! в новое окно.

надо: чтоб результат работы php загружался в элемент окна (например, div) по щелчку на другом элементе, к которому привязан обработчик события онклик на js.

  Ответить  
 
 автор: task   (05.03.2012 в 13:56)   письмо автору
 
   для: btr   (05.03.2012 в 10:49)
 

Собственно какая разница куда выводить, в тело или в элемент. Вопрос только в том, как вам надо - если таких кликов может быть произвольное число раз, то вам уже говорили - Ajax (основной контент не пергружается), если нечто единожды, то приготовить сразу все при выдаче страницы пользователю, пусть щелкает.

  Ответить  
 
 автор: Sergeich   (05.03.2012 в 16:41)   письмо автору
 
   для: task   (05.03.2012 в 03:41)
 

>Какие ошибки? В честь чего не передаст? Я так понимаю, человеку нужны значения переменных, а не их имена, это раз. А про "безперезагрузки", что-то я не вижу этого.

Вы просто пытались переменным присвоить строковые данные. При этом для первой переменной у Вас предусмотрены неадекватные данные. Там синтаксическая ошибка. Если мне не верите, то попробуйте у себя вывести с помощью alert() эти переменные и увидите, что получится. Но и серверу Ваши строковые данные не будут переданы.

  Ответить  
 
 автор: task   (05.03.2012 в 16:55)   письмо автору
 
   для: Sergeich   (05.03.2012 в 16:41)
 

Если честно, то ничего не понял, что неверно именно. Проверяю:
alert(typeof n); //number и соответственно 123
alert(typeof s); //string и соответственно Text

  Ответить  
 
 автор: Sergeich   (05.03.2012 в 17:28)   письмо автору
 
   для: task   (05.03.2012 в 16:55)
 

В первом случае выведет xml
Как строку не сможет интерпретатор определить, так как нет кавычек.
Я так и не понял каким образом Вы собираетесь предавать эти переменные РНР скрипту. Если можно, покажите, пожалуйста рабочий пример.

P.S. Я так понял, Вы хотели показать только часть задания - передачу переменной РНР JavaScript на сервере, только тогда Ваш пример будет иметь значение.

  Ответить  
 
 автор: task   (05.03.2012 в 17:58)   письмо автору
 
   для: Sergeich   (05.03.2012 в 17:28)
 

Да, именно "передача" переменных на сервере, то есть при формировании страницы пользователю, я думал, что это из примера и так было понятно. )

  Ответить  
 
 автор: btr   (05.03.2012 в 23:50)   письмо автору
 
   для: task   (05.03.2012 в 17:58)
 

Я чтото не понял. js вроде клиентский язык, соотв. выполняется в проводнике у пользователя, а не на сервере? :О в какой документ предполагается Ваш код вставлять?

Я так понял, что решение моего вопроса может быть 2мя способами:
1 использование ajax
2 полностью создавать страницу на сервере с помощью php

  Ответить  
 
 автор: Sergeich   (06.03.2012 в 00:28)   письмо автору
 
   для: btr   (05.03.2012 в 23:50)
 

Этот код предполагается вставлять в РНР файл на сервере, тогда с помощью РНР будут передаваться значения переменным JavaScript. Передавать информацию обратно можно двумя способами:
1. Отправка данных на сервер методом перенаправления на страницу-обработчик с перезагрузкой страницы или открытием другой.
2. С помощью объекта XMLHttpRequest о чем писалось неоднократно выше, здесь же возможно и получение ответа сервера без перезагрузки страницы.
Для того, что Вы хотите получить, выбирать нужно именно последний вариант.

  Ответить  
 
 автор: task   (06.03.2012 в 04:38)   письмо автору
 
   для: btr   (05.03.2012 в 23:50)
 

В любом случае страницы для пользователя создаются на сервере, и не важно на чем, РНР или ASP. Следовательно - если ваши данные, которые в последствии будет получать пользователь, это очень большой список, либо данные изменяющиеся во времени пользователями, то Ajax. Но если это набор констант, или изменяемые данные, но не пользователями, и это не огромный список, то зачем зря тревожить сервер? Значит, формируем страницу пользователю по запросу (РНР, попробуйте, поймете):
<html>
<head>
<!-- Здесь может быть подключение основного JS сценария 
и здесь же включаем для него данные, которые берем из базы -->
<?php
//запрос к базе, получаем массив
//подготовив его на выходе либо JS массивом, либо JS объектом
//для примера пусть это будет объект, например:
$arr = array('cp'=>array(12.5,100),'al'=>array(10.5,80),'ir'=>array(8,60));
//и отдаем его пользователю 
?>
<script>
//js объект
var tp = <?php echo json_encode($arr); ?>;
//а это пусть сценарий, который во внешнем файле в реалии
function calculate(v) {
   var w = document.getElementById('width').value;
   var h = document.getElementById('height').value;
   var t = document.getElementById('thick').value;
   document.getElementById('calc').value = w*h*t*tp[v][0]*tp[v][1]; 

</script>
</head>
<body>
Ширина: <input id="width" /><br />
Высота: <input id="height" /><br />
Толщина: <input id="thick" /><br />
Итог: <input id="calc" /><br />
<select onchange="if(this.value) calculate(this.value);">
<option value="">Выберите...</option>
<option value="cp">Медь</option>
<option value="al">Алюминий</option>
<option value="ir">Железо</option>
</select>
</body>
</html>

Что вы хотите сделать, какие у вас данные только вам да богу известно, а значит вам и выбирать как. Но руководствоваться при этом принципом не как круче или это пойдет, а от разумного, и учитывать, что данные полученные методом Ajax поисковиками не индексируются.

Кстати, о "скрытости", на заметку: http://www.learningjquery.com/2008/10/1-way-to-avoid-the-flash-of-unstyled-content

  Ответить  
 
 автор: btr   (06.03.2012 в 16:28)   письмо автору
 
   для: task   (06.03.2012 в 04:38)
 

Всем большое спасибо. Будем думать, пробовать :)

  Ответить  
Rambler's Top100
вверх

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