2016-03-20 3 views
0

Я новичок в php. Я пытаюсь опубликовать некоторый ввод с помощью ajax, но он не работает.Не удается опубликовать данные с помощью JQuery и Ajax

Это мой HTML для ввода:

<div class="form-group"> 
 
    <h3>Answer:</h3> 
 
    <div class="input-group"> 
 
    <textarea name="q1" id="q1" class="form-control" rows="4" ></textarea>   
 
    </div> 
 
</div> 
 
<button type="button" id="button" class="btn btn-primary btn-lg">Submit</button>

И это моя функция JQuery для отправки данных:

$(function(){ 
 
    $('button').click(function(){ 
 
    var q1= $('#q1').val(); 
 
    $.ajax({ 
 
    type: 'post', 
 
    url: 'test.php', 
 
    data: { 
 
    q1: q1    
 
    }, 
 
        
 
    success: function (response) { 
 
     console.log(response); 
 
    }   
 
    }); 
 
    }); 
 
});

Мой т est.php простой код для отображения ввода:

<?php 
 
\t $q1= $_POST['q1']; 
 
    echo $q1; 
 
?>

Я не знаю, почему в моем test.php я получаю эту ошибку: Notice: Undefined index: q1 in C:\xampp\htdocs\series\file\test.php on line 2

Может кто-нибудь сказать мне, где проблема?

+0

Вы получаете эту ошибку, когда вы идете прямо в test.php в вашем браузере? –

+0

@LeonAves точно, –

+0

Это ожидается. Когда вы посещаете его прямо в своем браузере, вы не отправляете q1 на test.php. Вы должны попробовать заменить вашу функцию успеха на 'function (data) {console.log (data); } 'и проверьте консоль. –

ответ

0

Прежде всего, вы пытаетесь отправить данные json в ваш php-файл, поэтому jQuery может не создавать правильную полезную нагрузку для вашего запроса, так как вы получаете undefined index:q1. Можете ли вы попробовать код ниже;

$(function() { 
    $('button').click(function() { 
     var q1 = $('#q1').val(); 
     $.ajax({ 
      type : 'post', 
      url : 'test.php', 
      data : "q1="+q1, 
      success : function (response) { 
       console.log(response); 
      } 
     }); 
    }); 
}); 
+0

У меня все еще такая же ошибка ... –

+0

@ H.Tirit поэтому проверили раздел вашей консоли консоли браузера, чтобы узнать, что возвращает test.php после запроса? –

+0

Я проверил это, и он возвратил любую ошибку –

0

Попробуйте это:

$('document').ready(function(){ 
 

 
     $("form#data").submit(function(){ 
 
      var formData = new FormData($(this)[0]); 
 
      $.ajax({ 
 
      url: 'url', 
 
      type: 'POST', 
 
      data: formData, 
 
      async: false, 
 
      success: function (data) 
 
      { 
 
       alert(data); 
 
      }, 
 
      cache: false, 
 
      contentType: false, 
 
      processData: false 
 
      }); 
 
     return false; 
 
     }); 
 
     }); 
 
}
<form id="data" method="post"> 
 
    <div class="form-group"> 
 
     <h3>Answer:</h3> 
 
     <div class="input-group"> 
 
     <textarea name="q1" id="q1" class="form-control" rows="4" ></textarea>   
 
     </div> 
 
    </div> 
 
    <input type="submit" id="button" class="btn btn-primary btn-lg"> 
 
    </form>

Смежные вопросы