@lilikon

Проблема при отправки ajax?

Есть вот такой код:
js:
$(function () {	
	$(document).ready(function () {
		$(document).on('change','#textexpo',function(e){
			var selectval = $(this).val();
			var countFiles = 'Не выбран';
			console.log(selectval);
			if (selectval == '0') {
			   $('#priceExpo').text(countFiles);
				return(false);
			}
			$.ajax({ 
				url:'ajax/selectexpo.php',
				type:'post',
				data:{'id': selectval},  
				success: function (result) {
					var $result = JSON.parse(result); 				
					$('#priceExpo').text($result);
				}
			});
		});	
	});
});

php:
define('INCLUDE_CHECK',true);
require_once('../system/mysql.php');
require_once('../system/session.php');
require_once('../system/connect.php');

if(isset($_POST['id'])) {
	$id = $_POST['id'];
}

$sql = $db->query("SELECT * FROM expo WHERE id='$id'");
$res = $db->get_array($sql);
if ($res['type'] == 'Бесплатно') {
	$result = 'Бесплатно';
} else {
	$result = 'нету';
}

print json_encode($result);

По идеи он должен отправить $_POST['id'] с данными option value в php запрос

Но почему то выдает ошибку: Notice: Undefined variable: id in C:\xampp\htdocs\ajax\selectexpo.php on line 11


Если смотреть на console.log(selectval); переменная корректно выводится в логах, но почему то не передается в файл php

В чем проблема? Где мой косяк?
  • Вопрос задан
  • 179 просмотров
Решения вопроса 2
denis_bardak
@denis_bardak
Web Developer
data: ({id:selectval}) ? если не поможет посмотрите в панели разработчика что уходит в запросе?
Ответ написан
narwhale
@narwhale
Я нарвал.
Вы объявляете $id внутри if'а, эта переменная умирает, когда заканчивается if
Поставьте ее перед этим if'ом
Напишите так:
define('INCLUDE_CHECK',true);
require_once('../system/mysql.php');
require_once('../system/session.php');
require_once('../system/connect.php');

$id = -1;
if(isset($_POST['id'])) {
  $id = $_POST['id'];
}
if ($id == -1) exit("Чот не пришло :(");

$sql = $db->query("SELECT * FROM expo WHERE id='$id'");
$res = $db->get_array($sql);
if ($res['type'] == 'Бесплатно') {
  $result = 'Бесплатно';
} else {
  $result = 'нету';
}

print json_encode($result);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы