Ajax до PHP с json при использовании массивов make игнорирует "echo" - PullRequest
0 голосов
/ 31 марта 2020

Итак, я пытался решить это сам сегодня час и не могу понять причину. В настоящее время я обновляю свой веб-сайт с помощью 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 над всеми

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...