За последние 24 часа нас посетили 25707 программистов и 1726 роботов. Сейчас ищут 834 программиста ...

js + php

Тема в разделе "PHP для новичков", создана пользователем des1roer, 18 апр 2014.

  1. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    есть некая страница. в общем в пхп приходит значение даты необходимо при его изменении (выбираю в календаре), данные уходили в функцию js.

    Код (Text):
    1. <script id="source" language="javascript" type="text/javascript">
    2. var name='<? echo $sum; ?>';
    3. var min = '<? echo $flotmin; ?>';  //это значение не меняется. принимает его дин раз и все
    4. $(function() {
    5.         var graphData = eval("(" + name + ")");
    6.         $.plot($("#placeholder"), graphData,
    7.         {
    8.         xaxis: {
    9.         mode: "time",
    10.         min: (new Date('<? echo $flotmin; ?>')).getTime()+6*3600000,           
    11.         max: (new Date('<? echo $flotmax; ?>')).getTime()+6*3600000},
    12.         yaxis: {min: 550, max: 600} });
    13. });
    14. </script>
     
  2. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    Правильно, потому-что php сгенировал тебе html, выплюнул его в бразуер и все, какие к нему еще вопросы?
    Дальше js.
     
  3. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    так мне и нужно чтобы при каждом изменении $flotmin генерировался новый интервал. кст $sum работает. может из за $sum= json_encode($graph); тут наткнулся на события live.click - это мне может помочь или не то пальто?
     
  4. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    <script id="source" language="javascript" type="text/javascript">
    Зачем?
    И вообще ничего не понятно.
     
  5. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    не мешает и все. нужно как то обработать нажатие на кнопку
     
  6. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    я немного не понял почему именно такая сборка а не вот такая..

    index.php
    Код (PHP):
    1. function to_json(array $data)
    2. { //получаем json строку
    3.     $isArray = true;
    4.     $keys = array_keys($data);
    5.     $prevKey = -1;
    6.  
    7.     // Необходимо понять — перед нами список или ассоциативный массив.
    8.     foreach ($keys as $key)
    9.         if (!is_numeric($key) || $prevKey + 1 != $key)
    10.         {
    11.             $isArray = false;
    12.             break;
    13.         }
    14.         else
    15.             $prevKey++;
    16.  
    17.     unset($keys);
    18.     $items = array();
    19.  
    20.     foreach ($data as $key => $value)
    21.     {
    22.  
    23.         $item = (!$isArray "\"$key\":" : '');
    24.  
    25.         if (is_array($value))
    26.             $item .= to_json($value);
    27.         elseif (is_null($value))
    28.             $item .= '""';
    29.         elseif ($value=='null')
    30.             $item .= '""';
    31.         elseif (is_bool($value))
    32.             $item .= $value 'true' : 'false';
    33.         elseif (is_string($value))
    34.             $item .= '"' . preg_replace(
    35.                 '%([\\x00-\\x1f\\x22\\x5c])%e',
    36.                 'sprintf("\\\\u%04X", ord("$1"))',
    37.                 $value
    38.             ) . '"';
    39.         elseif (is_numeric($value))
    40.             $item .= $value;
    41.         else
    42.             throw new Exception('Wrong argument.');
    43.  
    44.         $items[] = $item;
    45.     }
    46.  
    47.     return
    48.         ($isArray '[' : '{') .
    49.         implode(',', $items) .
    50.         ($isArray ']' : '}');
    51. }
    52.  
    53. //Я не знаю откуда берутся все данные для скрипта - возможно из базы поэтому я делаю немного криво - но суть ясна
    54.   $i=0;
    55.    $data = array();
    56.  
    57. While ($row_tmp = pg_fetch_array($sql) ) {
    58. $data[$i]['sum']=$row_tmp['sum'];
    59. $data[$i]['flotmin']=$row_tmp['flotmin'];
    60. $data[$i]['flotmax']=$row_tmp['flotmax'];
    61. $i++;
    62. }
    63. echo main::to_json ($data);
    index.html
    Код (Text):
    1.  
    2. <input type="button" value="  обсчет" onclick="get_json()" id="get_json"/>
    3. <script id="source" language="javascript" type="text/javascript">
    4. function get_json(){
    5. $.getJSON( "index.php",  function(data){
    6. //Если ID input полей для вывода соответствуют приходящим данным можно сделать вот так
    7. for (var key in data) {
    8. var val = data[key];
    9. $("#"+key).val(val);
    10. }
    11. //если же нет тогда все поля проходим вот так
    12. $("#name").val(data['name']);
    13. //если же нужны переменные тогда гоним в переменные аналогично
    14. name=data['name'];
    15. // тут же запускаем обсчитывающий кусок
    16.    var graphData = eval("(" + name + ")");
    17.         $.plot($("#placeholder"), graphData,
    18.       {
    19.       xaxis: {
    20.         mode: "time",
    21.         min: (new Date(' + flotmin + ')).getTime()+6*3600000,        
    22.         max: (new Date(' + flotmax +')).getTime()+6*3600000},
    23.       yaxis: {min: 550, max: 600} });
    24.  
    25.  
    26.  }
    27. }
    28.  
    29. $(function() {
    30. var name,min;
    31.  
    32. //если вызвать функцию в нужном месте ( возможно при клике на кнопку или по таймеру) то данные будут браться с сервера
    33. get_json();
    34.  
    35.  
    36.      
    37. });
    38. </script>
    запускающий файл index.html - с количеством ковычек, скобок и всего аналогичного могу жутко ошибиться набирал на ходу.

    Добавлено спустя 14 минут 56 секунд:
    и вообще про AJAX почитай =)