Не передаются данные JSON , методом AJAX

150
22 сентября 2018, 12:30

Есть код подкорректирован но почему-то данные не передаются по AJAX, а должна записываться 1 и по повторному нажатию записывать 0. Выводит ошибку.

ВОТ САМ ФАЙЛИК С AJAX:

<?php
header('Access-Control-Allow-Origin: *');
if(isset($_GET['result1']))
   {
if($_GET['result1']=="0")
echo '{"ID":"1", "result1":"0"}';
else if($_GET['result1']=="1")
echo '{"ID":"1", "result1":"1"}';
   }
?>

    var result1 = 0;      
var button = document.getElementById('my-button'); 
var color = true; 
button.addEventListener( "click" , function(ev){ 
  if (color) { 
    this.style.backgroundColor = '#4cff00' 
      result1 = 1; 
} else { 
    this.style.backgroundColor = '#6b7077' 
      result1 = 0; 
} 
 var userId = ev.target.dataset.userId; 
 var userName = ev.target.dataset.userName; 
 var json = JSON.stringify({ 
  ID: userId, 
  surname: userName 
}); 
 var xhr = new XMLHttpRequest(); 
 xhr.open('GET','http://localhost/tech_user/con_data_ajax/work-ajax-data.php?result1='+result1, true); 
 xhr.send(); 
document.getElementById("result1").innerHTML = result1;     
color = !color; 
}); 
    
    .cp-pen-styles >input { 
      width:200px; 
      height:50px; 
    } 
    .group-result { 
      position: relative; 
      font-size: 30px; 
      display:inline-block; 
      vertical-align: middle; 
      z-index: 0; 
      padding-left: 10px; 
      padding-right:10px; 
    }    
    <!DOCTYPE html><html lang='en' class=''> 
    <head> 
    <meta charset='UTF-8'> 
    <meta name="robots" content="noindex"> 
    </head> 
    <body> 
    <input id="my-button" type="button" value="WORK" data-user-id ="1" data-user-name= "Копыча"> 
    <div id="result1"class="group-result">0</div> 
    </body> 
    </html>

Answer 1

Ошибки, который видны на данный момент: 1. Лишняя закрывающая фигурная скобка в конце php
2. У GET запроса нет тела, поэтому send не должго иметь аргументов
3. open имеет 3 или 5 параметров

xhr.open(method, URL, async[, user, password])

GET запрос передаётся в строке URL, например:

xhr.open('GET', 'con_data_ajax/work-ajax-data.php?result1='+result1, true);

Раз запрос выводит 404, значит неверно указан URL или за него считается часть

['result1']

Попробуйте указать его полностью и/или удалить этот аргумент.

Примерный вид php файла:

<?php
//Проверка на существование записи в массиве _GET
//В этот массив передаются переменные из GET запроса
if(isset($_GET['result1']){
  //Проверка значения переменной
  //P.S. Желательно обработать переменную прежде чем использовать
  //Как пример: $result1 = striptags($_GET['result1']);
  if($_GET['result1']=="0")
    //Вывод при соблюдении условия
    echo '{"ID\":"1", "result1":"0"}';
  else if($_GET['result1']=="1")
    //Вывод при не соблюдении 1го, но соблюдении 2го условия
    echo '{"ID\":"1", "result1":"1"}';
  //В ином случае ничего не будет выведено
}
?>

И вид запроса:

xhr.open('GET', 'con_data_ajax/work-ajax-data.php?result1='+result1, true);

Ошибка 404 означает, что страница по заданому URL не найдена

READ ALSO
работы с одинаковыми классами js

работы с одинаковыми классами js

Есть множество картинок с одним классом crypt_img, при ховере на которые нужно чтобы показался соответствующий ему блок с классом crypt_text, которых...

250
Мобильное меню сайта [закрыт]

Мобильное меню сайта [закрыт]

Ситуация следующая - на сайте marynosolisun

138
как поменять ссылку на файл на сайте

как поменять ссылку на файл на сайте

Есть сайт (сторонний) похоже на nodejs подгружает http://cdn1site

168
JavaScript - jQuery.load производительность

JavaScript - jQuery.load производительность

Моя задача - подгрузка контента с другой страницыМне потребовалось добавить функцию callback

141