Tizi
@Tizi
гуру программист ( no )

В чем проблема добавления в BD?

Столкнулся с проблемой
Имею вот такую структуру формы
клик
f884886774bf4fcaa8bb91025d91e005.png

<div class="glav-form-reg">
						<!-- <span class="close"></span> -->
						<div class="cont">

							<script type="text/javascript">
								$( ".button-reg" ).click(function() {
									var mail = $('.form-mail').val();
									$.post('add_user.php', {mail: mail}, function(data){
										$('.cont').html(data);
									});
								});
							</script>

							<form id="login-register" method="post">
								<div class="divError" id="error"></div>
								<h3>Регистрация.</h3>
								<input class="form-mail" value="E-MAIL.RU" type="email" name="email">
								<p>
									Регистрация не обязательная. она служит для рассылки оповещений о новых обновления.
								</p>

								<button type="submit" class="button-reg"  name="add">Login / Register</button>
							</form>
						</div>
					</div>




И файл Add_user.php
клик

if(isset($_POST['button-reg']))
{
	
	$email = strip_tags(trim($_POST['email']));

	mysql_query("
		INSERT INTO user_brain(email) VALUES ('$email')
		");

	mysql_close();


    echo 'Вы успешно зарегестрированы'; //если регистрация дейсвительно успешна

 }



При нажатии на кнопку регистрации должно отправятся в БД почта которая введена.
Не понимаю в чем ошибка. Сам запрос MySQL Работает ( проверял в PHPMyAdmin )
Но при нажатии на кнопку не какого эффекта нету.

P.s: Палками не кидайтесь )) только стал вникать в PHP.
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
@MadridianFox
Web-программист, многостаночник
А вот и буду кидаться палками, ловите сразу 4 =)
1) Вы хотите отправить ajax запрос, но вы делаете форму и работающую (button type="submit") кнопку отправки. Не надо так. Либо форма, либо ajax.
2) JS код, который вешает обработчик на кнопку располагается выше самой кнопки и не обёрнут в $(document).ready. Т.е. в тот момент когда исполняется этот код, самой кнопки ещё нет, и обработчик нажатия не вешается.
3) обработчик отправки формы реагирует на isset($_POST['button-reg']), однако когда вы делаете ajax запрос, вы не передаёте параметр "button-reg".
4) расширение php, которое позволяет вызывать функции mysql_*** устарело. Используйте mysqli или PDO
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@D3lphi
Уберите условный оператор:
if(isset($_POST['button-reg'])) // <-- Этот

Вы не передаете в форму "значение" кнопки. Следовательно, это условие все время ложно. Из параметров у вас передается только mail. Непонятно, зачем вам тут форма нужна, если вы ajax'ом передаете данные, не сериализуя их?

Вы путаете class и name. Даже, если бы вы использовали форму, то проверять нужно было так:
if(isset($_POST['add']))
Потому что, ключами массива являются ИМЕНА инпутов, а не их классы.

Пожалуйста, хватит использовать mysql_*! Это устаревшее расширение! mysqli_* и pdo существуют.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы