Передать значение из 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>
 1
php
Author: Pedro Henrique Kuzminskas, 2016-11-18

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>
 2
Author: Miguel, 2016-11-18 16:54:44

Работают с 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>
 2
Author: Ivan Ferrer, 2016-11-18 17:28:33