@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();
 }
}
}

?>


Простите за ужасный код.
  • Вопрос задан
  • 1487 просмотров
Пригласить эксперта
Ответы на вопрос 2
KorniloFF
@KorniloFF
Работаю по font-end / JS
А где send? Вы данные-то отправляете?
Что в $_POST["promocode"] находится?
Ответ написан
Xardch
@Xardch
Потому что не во всех случаях есть ответ от сервера. Если промокод не найден, то ответ пустой
Ответ написан
Ваш ответ на вопрос

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

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