Передать значение из input radio для php
добрый день, у меня есть форма, которая будет мне отправить данные пользователю по электронной почте, и у меня есть 3 input type="radio"
, каждый сообщает мне, что хочет пользователь, как я могу отправить значения из него в php?
var frm = $("#form-carro");
frm.submit(function (e) {
$.ajax({
type: "POST",
url: "./form-carro.php",
data: frm.serialize(),
success: function () {
$("#cform").append("<div class='alert alert-success'><button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button><i class='fa fa-thumbs-o-up'></i><strong>Obrigado!</strong> Sua mensagem foi enviada!</div>")
}
}), e.preventDefault()
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<form id="form-carro">
<label class="margem-direita" style="margin-right: 5%" for='seguro'>
<input id='seguro-novo' type="radio" name="seguro" value="Seguro Novo">Seguro Novo</label>
<label class="margem-direita" style="margin-right: 5%" for='seguro'>
<input id='renovacao' type="radio" name="seguro" value="Renovação">Renovação</label>
<label class="margem-direita" for='seguro'>
<input id='sinistrado' type="radio" name="seguro" value="Sinistrado">Sinistrado</label>
</form>
2 answers
, Начинает иметь некоторые ошибки и недостатки в вашем html, ошибка в том, что не закрывает теги <label>
и я предполагаю, что вы хотите разместить информацию с metodo http POST
, задается в теге <form>
и action, что это скрипт php
, который будет обрабатывать информацию со стороны сервера.
<form id="form-carro" method="POST" action="script.php"> <!-- AJUSTAR AQUI O NOME DO FICHEIRO PHP -->
<label class="margem-direita" style="margin-right: 5%" for='seguro-novo'>
<input id='seguro-novo' type="radio" name="seguro" value="Seguro Novo">Seguro Novo</label>
</label>
<label class="margem-direita" style="margin-right: 5%" for='renovacao'>
<input id='renovacao' type="radio" name="seguro" value="Renovação">Renovação</label>
</label>
<label class="margem-direita" for='sinistrado'>
<input id='sinistrado' type="radio" name="seguro" value="Sinistrado">Sinistrado</label>
</label>
<input type="submit" value="enviar">
</form>
В сценарии.php (это может быть имя, которое вы хотите):
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_POST['seguro'])) {
echo $_POST['seguro'];
}
}
Обратите внимание, что если вы хотите, что данные обрабатываются в том же страницы/файла формы просто не установить action в <form>
:
<form id="form-carro" method="POST">
И включить php, который находится сверху на этой же странице.
ИЗДАНИЕ (я заметил за комментарии на вопрос, что делать с ajax):
Сделал небольшой, но полный пример, вы можете лбу его, поместив все это в одном файле.php (как есть) на сервере, или это может поставить часть php в другой файл и установив правильный url-адрес в запросе ajax:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_POST['seguro'])) {
echo $_POST['seguro'];
}
die();
}
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<form id="form-carro" method="POST">
<label class="margem-direita" style="margin-right: 5%" for='seguro-novo'>
<input id='seguro-novo' type="radio" name="seguro" value="Seguro Novo">Seguro Novo</label>
</label>
<label class="margem-direita" style="margin-right: 5%" for='renovacao'>
<input id='renovacao' type="radio" name="seguro" value="Renovação">Renovação</label>
</label>
<label class="margem-direita" for='sinistrado'>
<input id='sinistrado' type="radio" name="seguro" value="Sinistrado">Sinistrado</label>
</label>
<input type="submit" value="enviar">
</form>
<script>
$('input[type="submit"]').on('click', function(e) {
e.preventDefault();
var seg = $('input[name="seguro"]:checked').val();
$.ajax({
url: '',
type: 'POST',
data: {seguro: seg},
success: function (response) {
// aqui coloca tudo o que quer que aconteça caso a requisição seja bem sucedida
// trabalha os dados que vieram do servidor como quiser
alert('escolheu: ' +response);
},
error: function(xhr, status, error){
console.log("Fail: " + xhr.responseText);
}
});
return false;
});
</script>
Работают с frm.serialize()
, form, попробуйте так:
<?php
if ($_POST) {
echo $_POST['seguro'];
die();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script>
$(function() {
var frm = $("#form_carro");
frm.submit(function (e) {
e.preventDefault();
$.ajax({
type: "POST",
url: frm.attr('action'),
data: frm.serialize(),
success: function (data) {
/* o alert irá imprimir o
retorno do que foi
enviado para o PHP */
alert(data);
$("#cform").append("<div class='alert alert-success'><button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×</button><i class='fa fa-thumbs-o-up'></i><strong>Obrigado!</strong> Sua mensagem foi enviada!</div>")
},
error:function(error) {
console.log(error);
}
});
})
});
</script>
</head>
<body>
<div id="cform"></div>
<form id="form_carro" method="post" action="./form-carro.php">
<label class="margem-direita" style="margin-right: 5%" for='seguro'>
<input id='seguro-novo' type="radio" name="seguro" value="Seguro Novo">Seguro Novo</label>
<label class="margem-direita" style="margin-right: 5%" for='seguro'>
<input id='renovacao' type="radio" name="seguro" value="Renovação">Renovação</label>
<label class="margem-direita" for='seguro'>
<input id='sinistrado' type="radio" name="seguro" value="Sinistrado">Sinistrado</label>
<input type="submit" value="Enviar">
</form>
</body>
</html>