2016-05-03 3 views
0

Я пытаюсь взять свою переменную Javascript и передать ее переменной PHP с помощью AJAX, чтобы я мог обновить свой SQL. В настоящее время функция вызывается, но AJAX не отправляет данные на PHP.php.Передача моей Javascript переменной на PHP с помощью Ajax

КОД UPDATE:

function placeData(){ 
     //Variable is caled and input is updated// 
     var hour1Data = document.getElementById("hourDataInput").value; 
     document.getElementById("hour1").innerHTML = hour1Data; 

     //Launch AJAX// 
     $.ajax({ 
      type: "POST", 
      url: "PHP.php", 
      data: {hour1Data: "hello", loginName: <?php echo $_POST['loginName'] ?>}, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(result){ 
       alert(result.d); 
       console.log(result); 
      } 
     }); 
    } 

//php.php 

if(isset($_POST['hour1Data'])) 
     { 
      echo "something is working"; 
      print_r($_POST); //Check the values here first 
      $hour1Data = $_POST['hour1Data']; 
      $sql = "UPDATE `$user` SET `$dateName`='$hour1Data' WHERE hour=1"; 
      if ($conn->query($sql) === TRUE) { 
      echo "Record updated successfully"; 
      } 
      else { 
       echo "problem adding value"; 
      } 
     } 
+0

Санизировать ввод данных, вы широко открыты для инъекций SQL. Правильно ли вы набрали URL? Можете ли вы проверить с помощью инструментов разработчика браузеров, что возвращает запрос? – BobbyTables

+1

«application/x-www-form- urlencoded» должно быть «application/x-www-form-urlencoded» (без пробелов между формой и кодировкой) – peuh

+0

Привет, Бенджамин. Проблема заключается в том, что код js не с PHP. Вы можете использовать эту ссылку для справки: http://www.w3schools.com/jquery/ajax_ajax.asp – user2947

ответ

0

Вот код:

$.ajax({ 
    type: "POST", 
    url: "PHP.php", //Check the url 
    data: {hour1Data: 1, loginName: "testUser"}, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(result){ 
     alert(result.d); 
     console.log(result); 
    } 
}); 

Php код:

if(isset($_POST['hour1Data'])) 
      { 
       echo "<pre>"; 
       print_r($_POST); //Check the values here first 
       $hour1Data = $_POST['hour1Data']; 
       $sql = "UPDATE `$user` SET `$dateName`='$hour1Data' WHERE hour=1"; 
       if ($conn->query($sql) === TRUE) { 
       echo "Record updated successfully"; 
       } 
       else { 
        echo "problem adding value"; 
       } 
      } 
+0

Из того, что он опубликовал, OP не использует JQuery. Он пытается учиться, и чистое решение js было бы лучшим ответом. Не могли бы вы отредактировать свой ответ, чтобы добавить его (ради полноты)? – peuh

+0

На самом деле ваш ответ в порядке. Я не знал, что есть более простой способ. Однако по какой-то причине он по-прежнему не работает. Я обновлю свой код. –

+0

Пожалуйста, обновите свой код: @BenjaminLawson. –

0

Удалить contentType в $ _POST для форм-закодирован типов контента. Вы можете посмотреть эту проблему здесь для некоторых ссылок -

Ajax call with contentType: 'application/json' not working.

Также важно отметить, какой тип данных вы ожидаете в своем запросе Ajax и тип данных, возвращаемый вашим файлом PHP. Положите обратный вызов error, чтобы вы знали, что такое ответ об ошибке.

Надеюсь, что это поможет.

Смежные вопросы