2016-11-24 7 views
0

У меня есть эта форма и АЯКС вызов в моей index.php-Отправить Ajax формы без обновления страницы PHP

<form method='post' id='saleForm' > 
    <input type='text' name='addCustomer' class='addInput' id='adlastname' placeholder='customer last name'> 
    <input type='text' name='addYear' class='addInput' id='adYear' placeholder='year'> 
    <input type='text' name='addMake' class='addInput' id='adMake' placeholder='make'> 
    <input type='text' name='addModel' class='addInput' id='adModel' placeholder='model'> 
    <input type='text' name='addGross' class='addInput' id='adGross' placeholder='front gross'> 
    <input type='hidden' name='Id' value='<?php echo $id;?>'> 
    <input type='submit' name='subSale' id='subSale' value='Save' > 
</form> 

<script> 
    $("form").submit(function(e) { 
    var url = "add.php"; // the script where you handle the form input. 

$.ajax({ 
     type: "POST", 
     url: url, 
     data: $("form").serialize(), // serializes the form's elements. 
     success: function(data) 
     { 
      alert(data); // show response from the php script. 
     } 
    }); 

e.preventDefault(); // avoid to execute the actual submit of the form. 
}); 
</script> 

Я пытаюсь представить его в базу данных с помощью add.php -

$cust = $_POST['addCustomer']; 
$addMake = $_POST['addMake']; 
$addModel = $_POST['addModel']; 
$addYear = $_POST['addYear']; 
$addGross = $_POST['addGross']; 
$subSale = $_POST['subSale']; 
$soldDate = date('m/d/yy'); 

if(isset($subSale)){ 
    $sql = "INSERT INTO `$sold_table` (`Id`,`Customer`, `Year`, `Make`, `Model`, `FrontGross`, `SoldDate`) VALUES (NULL,'$cust', '$addYear', '$addMake', '$addModel', '$addGross', '$soldDate')"; 
    if (mysqli_query($conn, $sql)) { 
     echo 'success!'; 
    } else { 
     echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
    } 
} 

Когда я нажимаю кнопку «Сохранить», он показывает пустое предупреждение, и данные по какой-то причине не подталкиваются. Любая идея, в которой я ошибаюсь? Я знаю, что Вставка правильная, поскольку она работает, когда я не использую вызов ajax и просто использую действие формы.

+0

Хорошо, что вы ожидали от выхода? Вы не эхом ничего не добиваетесь. Итак, поступают ли данные в базу данных? – Digitalis

+0

Да, просто пытаюсь получить данные в базе данных. –

+0

Это, по крайней мере, объясняет пустое оповещение. – Digitalis

ответ

1

При использовании jQuery для отправки формы кнопка отправки не используется. Поэтому он станет пустым, как только PHP получит опубликованные данные. Ваш скрипт проверяет $ subSale на выполнение запроса, который теперь терпит неудачу.

Попробуйте указать скрытый ввод с именем SubSale, и он снова будет работать. Другим решением является удаление всего этого оператора if, согласно вашему собственному предложению.

if(isset($subSale)){ 
+0

Отлично, да, я просто удалил его, спасибо! –

+0

Добро пожаловать. Счастливое кодирование! – Digitalis

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