Я хочу отправить форму скрипту PHP, позволить скрипту сделать свою магию, а затем вернуть указанную магию в div как визуальный индикатор ее успеха/отказа/изменения статуса.Возвращение ответа PHP в запросе AJAX
У меня есть форма, которую я представить (я вырезал много посторонних входы/текстовые области и т.д. коды, которые не являются важными):
HTML:
<form name="ajaxform" id="ajaxform" method="post" action="ajax.php">
<table>
<tr class="left">
<td>Reporter:</td>
<td>//list of people</td>
</tr>
<tr class="left">
<td width="75%">
<p><label for="start">Start:</label>
<input type="text" name="start" id="start"></p>
<p><label for="end">End:</label>
<input type="text" name="end" id="end"></p>
</td>
</tr>
<tr>
<td>
<input name="sid" type="hidden" id="sid" value="<?=$sid?>">
<input name="table" type="hidden" id="table" value="add">
<input name="submit" type="submit" id="submit" value="Submit" class="submitForm">
</td>
</tr>
</form>
<div id="messageResponse"></div>
О представлении, следующий JS запускаемый:
JS:
$(function() {
$('#ajaxform').validate({ // initialize the plugin
errorClass: "invalid",
submitHandler: function (form) {
$.ajax({
type:'POST',
url:'ajax.php',
data: $(form).serialize(),
success: function() {
$('#messageResponse').fadeIn(500);
$('#messageResponse').addClass('ui-state-highlight ui-corner-all').removeClass('ui-state-error');
$('#messageResponse').text('Success!' + result);
},
error: function (xhr, ajaxOptions, thrownError) {
$('#messageResponse').fadeIn(500);
$('#messageResponse').addClass('ui-state-error ui-corner-all').removeClass('ui-highlight-error');
$('#messageResponse').text(xhr.status + ' ' + thrownError + ': Something went wrong - check your inputs and try again.');
}
});
setTimeout(function(){ $('#messageResponse').fadeOut(500); }, 5000);
// resets fields
$('#ajaxform')[0].reset();
}
});
});
А потом я сценарий, который получает данные берется из списка нескольких PHP скриптов на основе табличных переменном передается из формы в скрытом вводе таблицы:
PHP:
if($_POST['table'] == "add"){
// Do mysql query which gives me an array
$result = array("foo" => "bar", "captain" => "coke");
echo(json_encode($result));
}
Я хочу для отправки моей формы, найдите ли он соответствующий код в ajax.php и выполните его, а затем верните результат этого скрипта PHP в div messageResponse. Где это так неудачно?
Какая ошибка? – doublesharp
У меня нет ошибки (или, самое большее, я получаю, что этот результат не определен в консоли). Если я изменил тип данных на «json», отправка формы просто отправит меня в файл ajax.php (чего он не должен). В противном случае я не получаю результат в div #messageResponse. – thebarless