Идея заключается в том, что этот скрипт POST присваивает значение текстового ввода в моей форме html emailform.php
, которое берет эти данные и добавляет его в файл .txt
. Я думаю, что у меня возникают проблемы с настройкой значения $email
в PHP на то, что в текстовом вводе html. В результате, в настоящий момент, когда скрипт запускается, я получаю два предупреждения (первая «ошибка», затем «полная», из функций .fail и .complete), а затем перезагрузка страницы. Вот почему я думаю, что проблема заключается в том, что информация возвращается из PHP, но, возможно, я ошибаюсь.Проблемы с получением данных от AJAX до PHP (и обратно)
<form method="post">
<input type="text" name="email" value="" class="emailSubmitSidebar" placeholder=" Your Email">
<input type="submit" name="submit" value="Add" class="submitButton" id="subscribeButton">
</form>
<script type='text/javascript'>
$(document).ready(function() {
var subscribeButton = $('#subscribeButton');
subscribeButton.click(function() {
$.ajax({
url: 'emailform.php',
type: 'POST',
dataType: 'text',
data: {email: $("input[name=email]").val()},
})
.done(function(data) {
alert("Added!");
})
.fail(function() {
alert("error");
})
.always(function() {
alert("complete");
})
})
})
</script>
И ниже PHP, я добавил первые две строки для проверки любых ошибок, которых больше нет. Странно, что когда я запускаю PHP отдельно, строка echo
печатает номер 3 на странице без каких-либо очевидных причин. Я прокомментировал переменную $email
, потому что мне повезло, что было лучше/необходимо сначала проверить, не isset
.
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
$fileHandle = fopen('emailList.txt', 'a') OR die ("Can't open file\n");
$email= isset($_POST['email']) ? $_POST['email'] : "";
// $email=$_POST['email'];
$result = fwrite ($fileHandle, "$email; \n");
fclose($fileHandle);
echo (!$result) ? "error" : $result;
die;
?>
Это выполняется без ошибок, но электронная почта не получает записывается в текстовый файл и перезагружает страницы после нажатия (и вход отображается в URL в качестве параметра). Что мне делать @ Neograph734? – trop
Обновите свой вопрос тем, что у вас есть сейчас.Я вижу, что вы его обновили, но неправильные 'data: ('input'). Val()' все еще существуют. Тогда мы можем посмотреть на это еще раз. Перезагрузка не имеет смысла ... Также удалите 'OR DIE', вместо этого произведите ошибку с правильным http_response_code. И вы можете использовать 'fwrite ($ fileHandle," $ email; \ n ");' .txt файлы не понимают
;) – Neograph734
Я обновил вопрос! Спасибо за вашу помощь до сих пор :). Я изменил 'data:'. Я не уверен, как заменить «OR DIE» тем, что вы предлагаете. И да, я поймал вопрос
. См. Новое описание в вопросе. В основном сценарий PHP повторяет номер 3, и я думаю, что это вызывает предупреждения. @ Neograph734 – trop