Перейти к содержимому


× Быстрый вопрос
Пользователь месяца
dos1k dos1k 1-й за Май
Очков активности: 1 194 28 тем, 115 сообщений, 4 балла репутации
Сайт: dos1k.ru
ТОП самых активных за этот месяц
  • Фотография Olya23
    #1

    Olya23
    Очков активности: 696 3 темы, 107 сообщений, 4 балла репутации

  • Фотография Rodiola
    #2

    Rodiola (rukodelkovo.ru)
    Очков активности: 414 0 тем, 69 сообщений, 4 балла репутации

  • Фотография maxnik
    #3

    maxnik (konovalovpavel.ru)
    Очков активности: 85.5 0 тем, 19 сообщений, 3 балла репутации

  • Фотография agrx
    #4

    agrx (key-assort.ru)
    Очков активности: 54 0 тем, 18 сообщений, 2 балла репутации

  • Фотография fedornabilkin
    #5

    fedornabilkin (plohoneponyal.ru)
    Очков активности: 42 0 тем, 14 сообщений, 2 балла репутации

  • Фотография BLIK
    #6

    BLIK
    Очков активности: 40.5 Вне конкурса за определение пользователя месяца

  • Фотография Андрей WPMasterKZ
    #7

    Андрей WPMasterKZ (wpmaster.kz)
    Очков активности: 36 0 тем, 24 сообщения, 1 балл репутации

  • Фотография re-search
    #8

    re-search
    Очков активности: 36 5 тем, 9 сообщений, 1 балл репутации

  • Фотография Ixman
    #9

    Ixman (o5cat.ru)
    Очков активности: 24 0 тем, 8 сообщений, 2 балла репутации

  • Фотография Artos
    #10

    Artos
    Очков активности: 21 0 тем, 7 сообщений, 2 балла репутации

  • Показать весь ТОП 10
Поддержите форум! =)
Апдейты
  • Яндекс ИКС: 24.05.2019
  • Яндекс выдача: 17.06.2019
Топ 5 участников по репутации


Xmlhttp.responseText возвращает всегда 0

#1 Kuchuluk

Kuchuluk
  • Пользователь
  • 333 сообщений
  • Репутация: 5
0

Отправлено 13 Ноябрь 2013 - 20:43

есть два поля для ввода чисел, эти числа отправляются в php скрипт, который должен вернуть их сумму, но почему то он всегда возвращает ноль. Отправляю запрос и принимаю ответ этим скриптом
function summa ()
  {
   var slag_1 = $("input[name='slag_1']");
   var slag_2 = $("input[name='slag_2']");
   var xmlhttp = getXmlHttp(); // объект XMLHTTP
   xmlhttp.open("POST", "summa.php", true); // асинхронное соединение
   xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   xmlhttp.send("slag_1=" + encodeURIComponent(slag_1) + "$slag_2=" + encodeURIComponent(slag_2));
   xmlhttp.onreadystatechange = function ()
   {
	if (xmlhttp.readyState == 4) // ответ пришел
	{
          if (xmlhttp.status == 200) // сервер вернул код 200
          {
               var sum = xmlhttp.responseText;
                alert(sum);
           }
	}
   }
  }
а сам php скрипт такой
<?php
$s1 = $_POST['slag_1'];
$s2 = $_POST['slag_2'];
$sum = $s1 + $s2;
echo $sum;
?>

 

 

  • 0

#2 fedornabilkin

fedornabilkin
  • Модератор
  • 1 168 сообщений
  • Репутация: 199

Отправлено 14 Ноябрь 2013 - 07:04

Учись дебажить скрипты.
После отправки данных, посмотри какие заголовки были отправлены, а конкретно - какая строка данных и что в ней.
Если данные отправились те, которые и должны были отправиться, то смотри пхп-скрипт.
Для начала добавь в ответ что-нибудь, что бы посмотреть, возвращает он хоть что-то или нет.
<?php
$s1 = $_POST['slag_1'];
$s2 = $_POST['slag_2'];
$sum = $s1 + $s2;
echo "ok " . $sum;
?>
Попробуй просто запустить этот скрипт, возможно в нем есть ошибка. Да-да, даже в 4-х строках может быть ошибка.
Потому что без ошибок никто не пишет.

А вообще, я бы предложил тебе использовать возможности jQuery. Код проще будет получаться.
$.ajax({
	type: "POST",
	url: "/summa.php",
	data: 'slag_1=3&slag_2=2',
	success: function(response){
	 alert(response);	
	}
   });
Такой код куда проще на мой взгляд.
  • 1

Надо обсудить предложение. А тут знакосчиталка считает знаки. Про Yii2 написано.



#3 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 333 сообщений
  • Репутация: 5

Отправлено 17 Ноябрь 2013 - 16:01

echo "ok " . $sum;

переделал код так, заработало
$s1 = $_POST['slag_1'];
$s2 = $_POST['slag_2'];
$s_1 = intval($s1);
$s_2 = intval($s2);
$sum = $s_1 + $s_2;
echo $sum;
не знал, что в PHP требуется обязательное приведение переменной к целочисленному виду для арифметических операций. Вроде всегда так складывалось...
  • 0

#4 fedornabilkin

fedornabilkin
  • Модератор
  • 1 168 сообщений
  • Репутация: 199

Отправлено 18 Ноябрь 2013 - 09:00

не знал, что в PHP требуется обязательное приведение переменной к целочисленному виду

Вообще не обязательно приводить к целочисленному типу.
ПХП не строготипизированный язык.
  • 0

Надо обсудить предложение. А тут знакосчиталка считает знаки. Про Yii2 написано.




Оформление форума – IPBSkins.ru