Задать вопрос
@ivan9727

Почему выдает ошибку syntaxerror unexpected end of json input?

Почему выдает ошибку syntaxerror unexpected end of json input?
Сам индекс
<!DOCTYPE html>
<html>
<head>
	<title>Активировация промокода</title>
<link rel="stylesheet" type="text/css" href="css/bootstrap-theme.css">
	<link rel="stylesheet" type="text/css" href="css/bootstrap.css">
	<link rel="stylesheet" type="text/css" href="css/promo.css">
	<link rel="stylesheet" type="text/css" href="css/animate.css">
	<link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon">
	<script type="text/javascript" src="../js/jquery-2.1.4.min.js"></script>
</head>
<body>

<section>
<div class="parent">
    <div class="block">
<form method="POST" action="" id="slick-login">
   <input id="input" type="text" name="promocode" class="placeholder" placeholder="XXXX-XXXX-XXXX">
    <input name="submit" type="submit" value="Активировать" ">
</form>
</div>
</div>
</section>
<script type="text/javascript">
$(document).ready(function() {
	$("#slick-login").submit(function(){
		var form = $(this); 
		var error = false;
		form.find('input').each( function(){
			if ($(this).val() == '') {
				alert('Зaпoлнитe пoлe "'+$(this).attr('placeholder')+'"!');
				error = true; // oшибкa
			}
		});
		if (!error) { 
			var data = form.serialize(); 
			$.ajax({ 
			   type: 'POST', 
			   url: 'probform.php', 
			   dataType: 'json', 
			   data: data,
		       beforeSend: function(data) { 
		            form.find('input[type="submit"]').attr('disabled', 'disabled'); 
		          },
		     
		       error: function (xhr, ajaxOptions, thrownError) { 
		            alert(xhr.status); 
		            alert(thrownError); 
		         },
		       complete: function(data) { 
		            form.find('input[type="submit"]').prop('disabled', false); 
		         }
		                  
			     });
		}
		return false; 
	});
});</script>
<!-- Scripts --><script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

обработчик формы
<?php
  $db = mysql_connect ("localhost","root","");
mysql_query("set names utf8");
mysql_select_db("promo",$db);

if($_POST)
  $promocode = ($_POST["promocode"]);
  $json = array();
{
 
    
 
   
   if(!preg_match("/^[a-zA-Z0-9]+$/",$_POST['promocode']))
    {
    $json['error'] = 'Промокод может состоять только из букв английского алфавита и цифр';
    echo json_encode($json);
    die();

    }
     
    if(strlen($_POST['promocode']) < 3 or strlen($_POST['promocode']) > 12)
    {
       $json['error'] = 'Промокод должен быть не меньше 3-х символов и не больше 12';
          echo json_encode($json);
    die();
    }
    function mime_header_encode($str, $data_charset, $send_charset) { // функция прeoбрaзoвaния зaгoлoвкoв в вeрную кoдирoвку 
    if($data_charset != $send_charset)
    $str=iconv($data_charset,$send_charset.'//IGNORE',$str);
    return ('=?'.$send_charset.'?B?'.base64_encode($str).'?=');
  }

if(count($_POST) > 1)
 {
 $mysqli->set_charset('utf8');
 
 $promocode = $mysqli->real_escape_string($_POST['promocode']);
 $query = $mysqli->query("SELECT `promocode` FROM `action` WHERE `promocode` = '$promocode'");
  $db = mysql_connect ("localhost","root","");
mysql_query("set names utf8");
mysql_select_db("promo",$db);

$result = mysql_query("SELECT * FROM action WHERE promocode='$promocode'",$db);
 

 

while($row=mysql_fetch_array($result)){
$comment=$row['comment'];
$price=$row['price']; 
}
if($query != false && $query->num_rows >= 1)
 {
  $json['error'] = 'Ваш приз $comment $price';
  echo json_encode($json);
  die();
 }
}
}

?>


Простите за ужасный код.
  • Вопрос задан
  • 1493 просмотра
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
KorniloFF
@KorniloFF
Работаю по font-end / JS
А где send? Вы данные-то отправляете?
Что в $_POST["promocode"] находится?
Ответ написан
Xardch
@Xardch
Потому что не во всех случаях есть ответ от сервера. Если промокод не найден, то ответ пустой
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽