есть некая страница. в общем в пхп приходит значение даты необходимо при его изменении (выбираю в календаре), данные уходили в функцию js. Код (Text): <script id="source" language="javascript" type="text/javascript"> var name='<? echo $sum; ?>'; var min = '<? echo $flotmin; ?>'; //это значение не меняется. принимает его дин раз и все $(function() { var graphData = eval("(" + name + ")"); $.plot($("#placeholder"), graphData, { xaxis: { mode: "time", min: (new Date('<? echo $flotmin; ?>')).getTime()+6*3600000, max: (new Date('<? echo $flotmax; ?>')).getTime()+6*3600000}, yaxis: {min: 550, max: 600} }); }); </script>
Правильно, потому-что php сгенировал тебе html, выплюнул его в бразуер и все, какие к нему еще вопросы? Дальше js.
так мне и нужно чтобы при каждом изменении $flotmin генерировался новый интервал. кст $sum работает. может из за $sum= json_encode($graph); тут наткнулся на события live.click - это мне может помочь или не то пальто?
я немного не понял почему именно такая сборка а не вот такая.. index.php Код (PHP): function to_json(array $data) { //получаем json строку $isArray = true; $keys = array_keys($data); $prevKey = -1; // Необходимо понять — перед нами список или ассоциативный массив. foreach ($keys as $key) if (!is_numeric($key) || $prevKey + 1 != $key) { $isArray = false; break; } else $prevKey++; unset($keys); $items = array(); foreach ($data as $key => $value) { $item = (!$isArray ? "\"$key\":" : ''); if (is_array($value)) $item .= to_json($value); elseif (is_null($value)) $item .= '""'; elseif ($value=='null') $item .= '""'; elseif (is_bool($value)) $item .= $value ? 'true' : 'false'; elseif (is_string($value)) $item .= '"' . preg_replace( '%([\\x00-\\x1f\\x22\\x5c])%e', 'sprintf("\\\\u%04X", ord("$1"))', $value ) . '"'; elseif (is_numeric($value)) $item .= $value; else throw new Exception('Wrong argument.'); $items[] = $item; } return ($isArray ? '[' : '{') . implode(',', $items) . ($isArray ? ']' : '}'); } //Я не знаю откуда берутся все данные для скрипта - возможно из базы поэтому я делаю немного криво - но суть ясна $i=0; $data = array(); While ($row_tmp = pg_fetch_array($sql) ) { $data[$i]['sum']=$row_tmp['sum']; $data[$i]['flotmin']=$row_tmp['flotmin']; $data[$i]['flotmax']=$row_tmp['flotmax']; $i++; } echo main::to_json ($data); index.html Код (Text): <input type="button" value=" обсчет" onclick="get_json()" id="get_json"/> <script id="source" language="javascript" type="text/javascript"> function get_json(){ $.getJSON( "index.php", function(data){ //Если ID input полей для вывода соответствуют приходящим данным можно сделать вот так for (var key in data) { var val = data[key]; $("#"+key).val(val); } //если же нет тогда все поля проходим вот так $("#name").val(data['name']); //если же нужны переменные тогда гоним в переменные аналогично name=data['name']; // тут же запускаем обсчитывающий кусок var graphData = eval("(" + name + ")"); $.plot($("#placeholder"), graphData, { xaxis: { mode: "time", min: (new Date(' + flotmin + ')).getTime()+6*3600000, max: (new Date(' + flotmax +')).getTime()+6*3600000}, yaxis: {min: 550, max: 600} }); } } $(function() { var name,min; //если вызвать функцию в нужном месте ( возможно при клике на кнопку или по таймеру) то данные будут браться с сервера get_json(); }); </script> запускающий файл index.html - с количеством ковычек, скобок и всего аналогичного могу жутко ошибиться набирал на ходу. Добавлено спустя 14 минут 56 секунд: и вообще про AJAX почитай =)