多个单选按钮ajax发布

时间:2012-11-18 21:13:06

标签: php javascript jquery html mysql

我是网络编程的新手,我真的需要你的帮助。我有一个带有几个单选按钮的表单,我想通过ajax帖子将它们插入到mysql中。我可以用一个按钮来做,但不止一个我不知道怎么做。

这是我的html和jquery的一部分:

<html>
    <script>
        $(document).ready(function () {
            $("#submit").click(function () {
                var q1 = $('input[type="radio"]:checked').val();
                if ($('input[type="radio"]:checked').length == "0") {
                    alert("Select any value");
                } else {
                    $.ajax({
                        type: "POST",
                        url: "ajax-check.php",
                        data: "q1=" + q1,
                        success: function () {
                            $("#msg").addClass('bg');
                            $("#msg").html("value Entered");
                        }
                    });
                }
                return false;
            });
        });
    </script>
    </head>
    <body>
        <div id="msg"></div>
        <form method="post" action="">
            <div class="Clear">
                question1:bla bla bla
                <input class="star required" type="radio" name="q1" value="1" />
                <input class="star" type="radio" name="q1" value="2" />
                <input class="star" type="radio" name="q1" value="3" />
                <input class="star" type="radio" name="q1" value="4" />
                <input class="star" type="radio" name="q1" value="5" />
            </div>
            <br />
            <div class="Clear">
                question2:bla bla bla
                <input class="star required" type="radio" name="q2" value="1" />
                <input class="star" type="radio" name="q2" value="2" />
                <input class="star" type="radio" name="q2" value="3" />
                <input class="star" type="radio" name="q2" value="4" />
                <input class="star" type="radio" name="q2" value="5" />
            </div>
            <input type="submit" name="submit" id="submit" />
        </form>
    </body>
</html>

以下是我在mysql中插入按钮的方法:

<?php
$query = mysql_connect("localhost", "root", "");
mysql_select_db('db', $query);

if (isset($_POST['q1'])) {
    $choice1 = $_POST['q1'];
    $choice2 = $_POST['q2'];
    mysql_query("INSERT INTO tb VALUES('','$choice1')");
}
?>

我已经尝试为每个按钮制作一个var但是没有工作。 我怎么能在php中发布所有值,我应该更改为我的ajax和php? 谢谢!

我就是这样做的.php

<?php
$query=mysql_connect("localhost","root","");
mysql_select_db('cosmote',$query);
$q = array();
for ($i = 1; $i <= 2; $i++) {
  $q[$i] = isset($_POST['q'+$i]) ? mysql_real_escape_string($_POST['q'+$i]) : 0;
}
mysql_query("INSERT INTO tabel (q1,q2) VALUES ('$q[1]','$q[2]')");
?>

2 个答案:

答案 0 :(得分:3)

好的,这是怎么做的。首先,在表单中添加id

<form id="myform" method="post" action="">

这样可以更轻松地通过jQuery访问。然后,将序列化的表单作为POST数据传递给PHP脚本:

$(document).ready(function () {
    $("#submit").click(function () {                
        if ($('input[type="radio"]:checked').length == "0") {
            alert("Select any value");
        } else {
            $.ajax({
                type: "POST",
                url: "ajax-check.php",
                data: $("#myform").serialize(),
                success: function () {
                    $("#msg").addClass('bg');
                    $("#msg").html("value Entered");
                }
            });
        }
        return false;
    });
});

之后,您可以从PHP脚本中的$_POST数组中获取单选按钮值:

$_POST['q1'] // value of q1, can be 1-5
$_POST['q2'] // value of q1, can be 1-5

编辑:您的PHP代码的问题在于您使用+代替.来连接字符串。写下这个:

$q[$i] = isset($_POST['q'.$i]) ? mysql_real_escape_string($_POST['q'.$i]) : 0;

在此之后,我很确定它会起作用。

答案 1 :(得分:1)

您可以在表单上使用.serialize(),它会为您提供表单的值,就像您定期提交表单一样data: $('form').serialize(),