#javascript #php #ajax
Вопрос:
У меня возникли проблемы с удержанием двух видов «форм» на одной странице. Первый, который я сделал, работает вполне нормально:
$(function() {
$("form#firstForm").submit(function(e) {
e.preventDefault();
var formData = new FormData(this);
$.ajax({
url: 'submit.php',
type: 'POST',
data: formData,
/*success: function (data) {
alert(data)
},*/
cache: false,
contentType: false,
processData: false
});
});
});
Однако второй вариант тоже не работает. Он взаимодействует со своим PHP-файлом, но не отправляет параметр данных. Я читал, и многие говорят, что нужно использовать данные: { } но когда я это делаю, я получаю ошибку 500. Что мне делать? Что также странно, так это то, что значение, которое я отправляю, действительно отправляется на консоль. Это просто не проходит через AJAX.
$(function() {
$("#submit").click(function(e){
e.preventDefault();
var factorValue = $("#factor").val();
console.log(factorValue);
$.ajax({
url: 'save.php',
type: 'POST',
data: factorValue,
/*success: function(factor) {
console.log(factor);
},*/
});
});
});
Значение «фактор» относится к простому типу ввода.
<td><input type="text" class="form-control" id='factor' name="factor" placeholder="{$factor}" /> </td>
P. S: Эта страница отображается с помощью Smarty.
Комментарии:
1. Вы должны отправить пару ключ/значение. Вы только устанавливаете значение, как
data
и во втором. См. документы $.ajax2. @charlietfl Я изменил его на данные: {фактор: значение фактора}, и страница выдает мне ошибку 500.
3. Что ж, это правильный способ отправки. Проверьте журналы ошибок, чтобы узнать, что вызывает 500. Что-то не так в php
4. Также не используйте нажатие кнопки «Отправить». Вместо этого используйте форму отправить
5. @charlietfl «данные: {фактор: «Значение фактора»},» — Неожиданный «: «, ожидаемый один из: «}»
Ответ №1:
Сама ошибка была замаскирована как ошибка на стороне сервера из-за того, что среда разработки является сервером. Но на самом деле это была синтаксическая ошибка, которую я уловил через композитора.
data: { "factor": factorValue}