php javascript форма сериализации получить данные неопределенный индекс

Я хочу назвать входное значение из JavaScript
Код моей домашней страницы:

<form method="post" id="form">
<div class="row">
<div class="col-md-6">
<label for="f_name">First Name</label>
<input type="text" class="form-control" name="f_name "id="f_name" value="">
</div>
<div class="col-md-6">
<label for="l_name">Last Name</label>
<input type="text" class="form-control" name="l_name" id="l_name" value="">
</div>
</div>

….
код JavaScript:

$("#singup_btn").click(function(event){
event.preventDefault();
$.ajax({
url     : "register.php",
method  : "POST",
data    : $("form").serialize(),
success : function(data){
alert(data);
}
})
})

…код вызывающей страницы:

<?php

include "db.php";

$fname = $_POST["f_name"];
$lname = $_POST["l_name"];
...
echo $fname;

…ошибка при нажатии кнопки, определена только фамилия (ввод)

<br />
<b>Notice</b>:  Undefined index: f_name in <b>D:\xampp\htdocs\shop\register.php</b> on line <b>5</b><br />
<br />
<b>Notice</b>:  Undefined index: email in <b>D:\xampp\htdocs\shop\register.php</b> on line <b>7</b><br />
<br />
<b>Notice</b>:  Undefined index: password in <b>D:\xampp\htdocs\shop\register.php</b> on line <b>8</b><br />

пожалуйста, кто-нибудь, помогите мне?
Я застрял как более 4 часов на этом. Я изучаю javascript n php, n еще новичок. Пожалуйста помоги. Благодарю.

-1

Решение

Вы пропустили # У вас также есть ошибка в вашем первом поле ввода.

<input name="f_name ">

shouldbe

<input name="f_name">

$("#singup_btn").click(function(event){
event.preventDefault();
$.ajax({
url     : "register.php",
method  : "POST",
data    : $("#form").serialize(),
success : function(data){
alert(data);
}
})
})
1

Другие решения

попробуй этот код

$(document).on('click', '#singup_btn', function() {
$.ajax({
url     : "register.php",
type    : "POST",
data    : $("#form").serialize(),
success : function(data){
alert(data);
}
});
});

Удалите type = «submit» из кнопки отправки и добавьте type = «button». Это будет работать!

1

Сериализация формы с пробелом в name="f_name "id="f_name" заставляет + быть добавленным к сериализованному значению. Вот почему его неправильно подбирают на стороне сервера.


Ожидаемое значение на стороне сервера

f_name=asd&l_name=asd

Фактическое значение на стороне сервера

f_name+=asd&l_name=asd

см тест ниже

$("button").click(function()
{
//output values before serialization
console.log( "Result of f_name");
console.log ($("#f_name").val() );
console.log( "Result of l_name");
console.log ($("#l_name").val() );

//output values after serialization
var serialized = $("form").serialize();
console.log( "Result: Notice how f_name has an appended + in its key");
console.log( "'" + serialized + "'");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="post" id="form">
<div class="row">
<div class="col-md-6">
<label for="f_name">First Name</label>
<input type="text" class="form-control" name="f_name "id="f_name" value="">
</div>
<div class="col-md-6">
<label for="l_name">Last Name</label>
<input type="text" class="form-control" name="l_name" id="l_name" value="">
</div>
</div>
<button type="button"> test </button>
</form>
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector