|
|
|
| Как свойству элемента .innerHTML присвоить данные из php (результат работы скрипта, значение переменной или еще как-то??)
как кроме через форму передать данные в скрипт php? (есть ли такая возможность?)
Пожалуйста помогите | |
|
|
|
|
|
|
|
для: btr
(05.03.2012 в 00:46)
| | По "волшебному клику"? Что вы хотите сделать? Если на клиенте по выбору эти даннные должы появиться, то готовя страницу на сервере, запишите эти значения в JS переменные, а затем используйте:
<script type="text/javascript">
var n = <?php echo 123; ?>;
var s = "<?php echo 'Text'; ?>";
....
</script>
|
| |
|
|
|
|
|
|
|
для: task
(05.03.2012 в 01:33)
| | Это бессмысленно, Ajax технологию надо использовать. | |
|
|
|
|
|
|
|
для: Sergeich
(05.03.2012 в 01:40)
| | Почему бессмысленно, если ни вы, ни я толком не знаем чего хотят? Может человеку простое нужно, а вы предлагаете это решать целой технологией. | |
|
|
|
|
|
|
|
для: task
(05.03.2012 в 02:41)
| | Потому что если человек не хочет перезагружать страницу, как я понял, мой ответ будет единственно правильным. Ваш же код вообще работать не будет. Мало того, что там синтаксические ошибки, так еще и значение переменной он не передаст на сервер. | |
|
|
|
|
|
|
|
для: Sergeich
(05.03.2012 в 03:22)
| | Какие ошибки? В честь чего не передаст? Я так понимаю, человеку нужны значения переменных, а не их имена, это раз. А про "безперезагрузки", что-то я не вижу этого. | |
|
|
|
|
|
|
|
для: task
(05.03.2012 в 03:41)
| | Ситуация такая:
есть обработчик события онклик на js.
есть скрипт на php достающий из мускула данные по запросу.
в принципе, он же с помощью echo выводит таблицу с этими данными. НО! в новое окно.
надо: чтоб результат работы php загружался в элемент окна (например, div) по щелчку на другом элементе, к которому привязан обработчик события онклик на js. | |
|
|
|
|
|
|
|
для: btr
(05.03.2012 в 10:49)
| | Собственно какая разница куда выводить, в тело или в элемент. Вопрос только в том, как вам надо - если таких кликов может быть произвольное число раз, то вам уже говорили - Ajax (основной контент не пергружается), если нечто единожды, то приготовить сразу все при выдаче страницы пользователю, пусть щелкает. | |
|
|
|
|
|
|
|
для: task
(05.03.2012 в 03:41)
| | >Какие ошибки? В честь чего не передаст? Я так понимаю, человеку нужны значения переменных, а не их имена, это раз. А про "безперезагрузки", что-то я не вижу этого.
Вы просто пытались переменным присвоить строковые данные. При этом для первой переменной у Вас предусмотрены неадекватные данные. Там синтаксическая ошибка. Если мне не верите, то попробуйте у себя вывести с помощью alert() эти переменные и увидите, что получится. Но и серверу Ваши строковые данные не будут переданы. | |
|
|
|
|
|
|
|
для: Sergeich
(05.03.2012 в 16:41)
| | Если честно, то ничего не понял, что неверно именно. Проверяю:
alert(typeof n); //number и соответственно 123
alert(typeof s); //string и соответственно Text | |
|
|
|
|
|
|
|
для: task
(05.03.2012 в 16:55)
| | В первом случае выведет xml
Как строку не сможет интерпретатор определить, так как нет кавычек.
Я так и не понял каким образом Вы собираетесь предавать эти переменные РНР скрипту. Если можно, покажите, пожалуйста рабочий пример.
P.S. Я так понял, Вы хотели показать только часть задания - передачу переменной РНР JavaScript на сервере, только тогда Ваш пример будет иметь значение. | |
|
|
|
|
|
|
|
для: Sergeich
(05.03.2012 в 17:28)
| | Да, именно "передача" переменных на сервере, то есть при формировании страницы пользователю, я думал, что это из примера и так было понятно. ) | |
|
|
|
|
|
|
|
для: task
(05.03.2012 в 17:58)
| | Я чтото не понял. js вроде клиентский язык, соотв. выполняется в проводнике у пользователя, а не на сервере? :О в какой документ предполагается Ваш код вставлять?
Я так понял, что решение моего вопроса может быть 2мя способами:
1 использование ajax
2 полностью создавать страницу на сервере с помощью php | |
|
|
|
|
|
|
|
для: btr
(05.03.2012 в 23:50)
| | Этот код предполагается вставлять в РНР файл на сервере, тогда с помощью РНР будут передаваться значения переменным JavaScript. Передавать информацию обратно можно двумя способами:
1. Отправка данных на сервер методом перенаправления на страницу-обработчик с перезагрузкой страницы или открытием другой.
2. С помощью объекта XMLHttpRequest о чем писалось неоднократно выше, здесь же возможно и получение ответа сервера без перезагрузки страницы.
Для того, что Вы хотите получить, выбирать нужно именно последний вариант. | |
|
|
|
|
|
|
|
для: 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 | |
|
|
|
|
|
|
|
для: task
(06.03.2012 в 04:38)
| | Всем большое спасибо. Будем думать, пробовать :) | |
|
|
|