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

HTML+CSS+JavaScript

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

 

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

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

тема: как передать переменную из яваскрипт в рнр
 
 автор: admin   (07.06.2013 в 17:05)   письмо автору
 
 

Доброго времени суток. Подскажите пожалуйста как передать переменную из яваскрипт в рнр?
в яваскрипт каждую секунду обновляется число, вот его нужно передать в рнр каждую секунду

function myre()
{
nres = // получаем данные с БД
si = 5 // прибовлясекундуем в 
seu = 1000 // максимум можем прибавить
if (nres < seu){ rree = nres + si }
res = rree
document.opa.mega.value = " "+res;
setTimeout("myre()",1000);
}

  Ответить  
 
 автор: Deed   (07.06.2013 в 19:31)   письмо автору
 
   для: admin   (07.06.2013 в 17:05)
 

Мог бы ответить в использованием jQuery (из-за слабого занания "чистого" JS).
Но придет confirm, обругает и не оставит камня на камне.
Что делать...

  Ответить  
 
 автор: confirm   (07.06.2013 в 19:49)   письмо автору
 
   для: Deed   (07.06.2013 в 19:31)
 

Не надо меня всуе упоминать. Ни кто вам не мешает пред ответом своим написать - "Если на..., то....".

Я вам не запрещал что любо советовать из любой области, а последнее мое замечание вам, это тоже не запрет, а факт того, что вы используете jQuery как...

  Ответить  
 
 автор: Deed   (07.06.2013 в 20:09)   письмо автору
 
   для: confirm   (07.06.2013 в 19:49)
 

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

P.S. Охотно участвую в форуме из-за того, что хобби ради занялся вэбоделием, надеясь получить от этого определенное "пти-шво", но в нашей дыре эти навыки остались без применения. И лишь задачки неофитов не дают заплесневеть полученным знаниям.

  Ответить  
 
 автор: confirm   (07.06.2013 в 21:10)   письмо автору
 
   для: Deed   (07.06.2013 в 20:09)
 

Лучше не предполагать, а спросить, 90 процентов, это лишь ваше предположение. Хуже всего, когда не думая берут то, что вы наваяли, и это единственное, чем и будет заниматься jQuery. И таких сайтов не один и не два, да еще если код предложенный написан тоже не от знаний, а от предположений.

Просто для интереса откройте в Firebug объект jQuery. Это именно объект, а не кучка функций.
Писать
$('selector').click(function() {
   var i = $(this).attr('id');
   //вместо
   var i = this.id;
});
это не только поедание ресурсов объектом jQuery вхолостую, это еще и верх безграмотности. Непонимание того, чем является jQuery, рождает код-монстра, и пишут, совсем не подозревая этого, так как воспринимают jQuery поверхностно. Вряд ли вы это понимаете, потому как вы не изучаете языка породившего jQuery, ни сам jQuery, потому с такой легкостью и швыряетесь им.

Но это сказанное мною совсем не означает, что вам не стоит здесь писать на нем свои ваяния. На здоровье, мне от этого ни холодно, ни жарко.

  Ответить  
 
 автор: Deed   (08.06.2013 в 06:25)   письмо автору
 
   для: confirm   (07.06.2013 в 21:10)
 

Так, следим за оборотами, confirm. Не вам решать, что я понимаю, а чего нет.
Диалог окончен.

  Ответить  
 
 автор: psychomc   (08.06.2013 в 11:01)   письмо автору
196.8 Кб
 
   для: confirm   (07.06.2013 в 21:10)
 

тем не менее, составители мануала по jquery такой подход, судя по всему, считают нормальным =========>
(особое внимание нужно обратить на var $input = $(this); )

если не изменяет память, обращение вида this.[attr_name] работает не всегда корректно, точнее не для всех атрибутов в зависимости от браузера (возможно, я ошибаюсь).

  Ответить  
 
 автор: confirm   (08.06.2013 в 11:36)   письмо автору
 
   для: psychomc   (08.06.2013 в 11:01)
 

Составители мануала просто описывают методы jQuery и как ими пользоваться. Но это совсем не означает, что именно ее методы нужно всегда использовать вместо методов JS, тем более этого не утверждают ее разработчики.

Помните всегда, что this.id, это эффективнее, чем $(this).attr. И загляните все таки в саму jQuery.

  Ответить  
 
 автор: psychomc   (08.06.2013 в 12:07)   письмо автору
 
   для: confirm   (08.06.2013 в 11:36)
 

я это всё прекрасно понимаю, это очевидно, и тут Вы на 100% правы. но есть и другой момент. программируя на js, я, честно признаюсь, не сильно заморачиваюсь на производительности кода, а скорее пытаюсь делать его более читабельным и лаконичным, т.е примерно как в этом мануале, иногда грешу лишним выделение памяти под переменные и т.п. в конце концов, он же вертится на компьютере пользователя, а не на сервере, который обрабатывает множество запросов и где производительности действительно нужно уделять много внимания.
может быть, пример выше не самый подходящий, но опять же, особенно если разработчик не опытный, то все-таки, как мне кажется, лучше ту же работу с атрибутами возложить на jquery и знать, что всё отработает как надо, чем ломать голову, почему в какой-то ситуации скрипт ведет себя не предсказуемо. или держать в голове информацию о том, какие атрибуты мы можем получить через this.[attr_name], а какие нет..

  Ответить  
 
 автор: confirm   (08.06.2013 в 12:47)   письмо автору
 
   для: psychomc   (08.06.2013 в 12:07)
 

Ага, значит сервер, это некий государь, которому даже горшок в постель, так как он государственными делами занят, а клиенты, это чернь, пусть терпят? )

Нет, так не пойдет. Мне лично не доставляет удовольствия открывать страницы, которые от безграмотности жрут ресурсы мои впустую. Еще раз - если бы разработчики ставили целью рассказать, что такое jQuery, то это был бы фолиант во много раз превышающий описание ее методов.

jQuery в помощь тогда когда требуется создавать сложные или интерактивные интерфейсы, и она все таки для тех кто хорошо представляет что такое клиент, а не для начинающих и ничего непонимающих. Она и написана так, что имея богатый набор инструментов, еще и предоставляет скажем так "пути" для грамотного и эффективного их использования. А если их используют безграмотно или неоправданно применяя их, то это уже вред.

А о ресурсах пользователя вы просто обязаны заботиться также, как и печетесь о ресурсах сервера, ибо нагрузка, это совсем не огромное число запросов, нагрузка на ресурсы, это понятие гораздо более широкое. Компьютер клиента и без запросов может быстро ощутить нехватку ресурсов, не надо думать, что клиентский компьютер, это просто средство для просмотра страниц Интернета и все.

А вот вам пример о ресурсах. В CSS3 можно и анимацию устроить. Например сделать анимированное облако тегов. Я не буду писать самого кода его (в сети такой думаю найти можно). Запустите такую анимацию. Учтите, что она выполняется средствами браузера, а с учетом новых браузеров, то даже с использованием аппаратных возможностей системы, как-то кучи графических процессоров.

Казалось бы должно все летать, плевое же дело несколько слов анимировать, если 3D игрушки летают. А нет. К примеру у FF такая анимация происходит с рывками. А теперь добавьте на эту же страницу небольшой JS-код, в который поместите два таймера, вполне хватит их. И теперь посмотрите на CSS анимацию - тормоза налицо. А добавлено то вроде бы всего ничего.

  Ответить  
 
 автор: psychomc   (09.06.2013 в 00:04)   письмо автору
 
   для: confirm   (08.06.2013 в 12:47)
 

>Ага, значит сервер, это некий государь, которому даже горшок в постель, так как он государственными делами занят, а клиенты, это чернь, пусть терпят? )

не совсем, конечно же. просто на клиентские скрипты, как правило, не накладываются такие требования, как, например, на так называемым "высоконагруженные" приложения. ну и я сильно сомневаюсь, что в относительно простых js-скриптах (которых over 90% на интернет-сайтах), такие вещи, как вызов лишней функции jquery вместо использования стандартных средств js ощутимо отразится на производительности. особенно, если учитывать тот факт, что производительность современных пк постоянно растет.
а так, я с Вами полностью согласен, код должен быть максимально быстрым. но увы, в современных условиях, по крайней мере в аутсорсинге, очень часто приходится программировать в очень сжатые сроки, и порой приходится писать низкокачественный код по принципу "абы работало", чем задерживаться на работе лишних 1-2-3 часа. к сожалению, я с таким сталкиваюсь довольно таки часто..

p.s думаю не стОит дальше развивать эту тему и извиняюсь за флуд.

  Ответить  
 
 автор: confirm   (09.06.2013 в 00:52)   письмо автору
 
   для: psychomc   (09.06.2013 в 00:04)
 

Странный у вас подход как к понятию производительность и ресурсы. )

  Ответить  
 
 автор: Deed   (08.06.2013 в 06:30)   письмо автору
 
   для: admin   (07.06.2013 в 17:05)
 

Значит, локальный сервер у вас есть, надеюсь.
HTML:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
function myre(){
    $('#hdn').load('php_file.php',function(rtrn){ //get data from DataBase
        var si = 5;
        var seu = 1000;
        var nres = parseInt(rtrn);
        if(nres<seu){
            var rree = nres + si;
            $('#boo').text(rree);
        }
        else{
            $('#boo').html('<span style="color:red">Opa! Value of var. NRES is very BIG!</span>');
        }
        
    });
}
$(document).ready(function(){
    $.ajaxSetup ({
    // Disable caching of AJAX responses in fucking IE*/
    cache: false
});
    setInterval('myre()',1000);
});
</script>
<link rel="stylesheet" type="text/css" href="css/main.css" />
<title>Connect with PHP</title>
</head>
<body>
<div id="hdn" style="display: none;"></div>
<div id="boo">Start</div>
</body>
</html>


& PHP (php_file.php):

<?php
echo rand(0,1009);
?>

  Ответить  
 
 автор: яса1   (08.06.2013 в 08:20)   письмо автору
 
   для: admin   (07.06.2013 в 17:05)
 

посмотрите пример

вам в нём вам надо изменить всего три вещи:
1) в строке HTR.open ('get', 'test3108.php'); добавьте эту вашу JS-переменную, вот так:
HTR.open ('get', 'test3108.php?' + perem);

2) в строке TMR = setTimeout (myFunc, 3 * 1000); уберите троечку, вот так:
TMR = setTimeout (myFunc, 1000);

3) в PHP-файле в самом начале получайте эту вашу JS-переменную, вот так:
$perem = $_SERVER['QUERY_STRING'];
ну и формируйте из неё то, что вам надо из БД в PHP-переменную $d

  Ответить  
 
 автор: admin   (09.06.2013 в 14:48)   письмо автору
 
   для: яса1   (08.06.2013 в 08:20)
 

спасибо ребята!)) вроде получилось!

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

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