Итак, я пытался решить это сам сегодня час и не могу понять причину. В настоящее время я обновляю свой веб-сайт с помощью ajax, чтобы он выглядел более "гладким" одновременно с изучением js и jquery.
. базовая c jquery форма публикации, которая работает для всех моих запросов на публикацию, таких как логин и обновление sql, не работает.
Новая форма публикует массивы (3 разных входа с одинаковыми имя), чтобы я мог создать таблицу c html с информацией. В связи с этим мне нужно было использовать json dataType. Мой предыдущий скрипт собирал данные с помощью выражений basi c php echo. Теперь форма ajax больше не будет реагировать на эхо. Все работает кроме ответа от php до ajax формы.
PHP:
$offer =
'<table border="2">
<tr>
<th>Product</th>
<th>quantity</th>
<th>Price</th>
</tr>';
for($i = 0; $i < count($_POST['product']); $i++){
$offer .=
'<tr>
<td> '. ($_POST['product'][$i]) .'</td>
<td> '. ($_POST['quant'][$i]) .' </td>
<td> '. ($_POST['price'][$i]) .' </td>
</tr>';
}
$offer .='</table>';
try{
require_once('db_connect.php');
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO offers (company, price_table) VALUES(?,?)";
$connect->prepare($sql)->execute([$_SESSION['company_name'], $offer]);
if($sql){
$_SESSION['already_submitted'] = true;
echo "1";
}else{
echo "2";
}
}
Форма ajax:
$(document).ready(function() {
$('#sendoffer').submit(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
dataType: "json",
url: 'THE_URL_To_File',
data: $(this).serializeArray(),
success: function(data)
{
if ($.trim(data) === "1") {
$('#sendoffer').hide();
$('#error2').hide();
$('#success-window').css('display', 'block');
$('#sendrequest').hide();
}
else if ($.trim(data) === "2") {
$('#error2').css('display', 'block');
$('#error2').html('Fill out all the fields');
}
else {
$('#error2').css('display', 'block');
$('#error2').html(data);
}
}
});
});
});
РЕДАКТИРОВАТЬ: Я закодировал ответ PHP с помощью json_encode, он не работал. РЕДАКТИРОВАТЬ 2: Форма сообщения также не размещать информацию. Кажется, проблема со скриптом ajax над всеми