Я новичок в php. Я пытаюсь опубликовать некоторые данные с помощью 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);
}
});
});
});
Мой test.php - это простой код для отображения ввода:
<?php
$q1= $_POST['q1'];
echo $q1;
?>
Я не знаю, почему в моем test.php я получаю эту ошибку: Notice: Undefined index: q1 in C:\xampp\htdocs\series\file\test.php on line 2
Может ли кто-нибудь сказать мне, где проблема?
Ответ 1 · Cihan Uygun
Прежде всего, вы пытаетесь отправить данные 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);
}
});
});
});
Ответ 2 · Rishi
Попробуй это:
$('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>