jQuery AJAX post отправка и вывод php

310
18 марта 2017, 01:47

Есть файл graph.php

var weekday = new Array('Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'); 
var table = $(".table-hover"); 
var result = []; 
 
function validate(evt) { 
  var theEvent = evt || window.event; 
  var key = theEvent.keyCode || theEvent.which; 
  key = String.fromCharCode(key); 
  var regex = /[0-9]|\./; 
  if (!regex.test(key)) { 
    theEvent.returnValue = false; 
    if (theEvent.preventDefault) theEvent.preventDefault() 
  } 
} 
$("#gen").click(function() { 
  table.empty(); 
  var rows = $("#rows").val() - 1; 
  var date = new Date($("#from").val()); 
  for (var i = 0; i <= rows; i++) { 
    var day, month, year; 
    month = date.getMonth() + 1; 
    month = ('0' + month).slice(-2); 
    year = date.getFullYear(); 
    day = date.getDate(); 
    day = ('0' + day).slice(-2); 
    table.append("<tr><td>" + weekday[date.getDay()] + "</td><td>" + [day, month, year].join(",") + "</td><td><select></select></td><td><select></select></td><td><select></select></td></tr>"); 
    date.setDate(date.getDate() + 1) 
  } 
  $("select").append('<option value="1">X</option><option value="2">Start up</option><option value="3">Base</option><option value="4">Advanced</option><option value="5">VIP</option>'); 
  return date, rows 
}); 
$("#save").click(function() { 
  $("select").each(function(indx) { 
    result[indx] = $(this).val() 
  }); 
 
  $.ajax({ 
    type: "POST", 
    url: "engine/ajax/graph-post.php", 
    data: { 
      vals: result 
    }, 
    success: function() { 
      $('#save').css('color', 'lime'); 
    } 
  }); 
});
<table class="table-fill"> 
  <thead> 
    <tr> 
      <th colspan="2">График занятий</th> 
      <th>14-15:00</th> 
      <th>18-19:00</th> 
      <th>19-20:00</th> 
    </tr> 
  </thead> 
  <tbody class="table-hover"> 
 
  </tbody> 
</table> 
<div id="result"> 
  <span>Сколько дней выводим?</span> 
  <span>Дата начала</span> 
  <input id="rows" type="text" onkeypress="validate(event)" value="14" placeholder="Сколько дней выводим?"> 
  <input id="from" type="date" value="2017-03-13" placeholder="Дата начала"> 
  <input id="gen" type="button" value="Сгенерировать"> 
  <input id="save" type="button" value="Сохранить"> 
</div> 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

Который выводит и выполняет jQuery код генерации таблицы исходя из введенных данных. С помощью:

$.ajax({        
    type: "POST",
    url: "engine/ajax/graph-post.php",
    data: { vals : result },
    success: function() {
        $('#save').css('color','lime');
    }
});

я отправляю сгенерированный массив result[] на обработку в файл graph-post.php , его содержимое:

$tdVars = $_REQUEST['vals'];
$json = file_get_contents('graph.json');
$json = json_decode($json, true);
$json[] = $tdVars;
$json = json_encode($json);
file_put_contents('graph.json', $json);
echo $json;

А этот файл в свою очередь должен вывести данные в другом месте. Но на сколько я понял, я все делаю неверно. Мне нужно либо третий файл создать который будет получать данные из graph.json и выводить в нужном месте. Либо еще в первом кодировать jQuery переменные в json строки и с помощью php сразу же записывать их в файл graph.json , а вторым файлом по выполнению, читать json файл и выводить. Помогите подобрать оптимальный метод, а то уже голова вскипает от этого кода. Да и еще по выводу json файла мне нужно обратно в jquery переменные вернуть массив.

READ ALSO
Как получить значение из ответа?

Как получить значение из ответа?

Ajax запросом к странице получаю ответ:

506
Как динамическому блоку изменить цвет?

Как динамическому блоку изменить цвет?

У меня не изменяет цвет блока

360
Рамки(border) у крайних и соседних элементов

Рамки(border) у крайних и соседних элементов

Здравствуйте, подскажите способ сделать также?: http://refillsbourbon

320