1

我是网络编程新手,我真的需要你的帮助。我有一个带有几个单选按钮的表单,我想通过 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]')");
?>
4

2 回答 2

4

好的,这是如何做到的。首先,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;
    });
});

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

$_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;

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

于 2012-11-18T23:09:59.073 回答
1

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

于 2012-11-18T21:20:24.273 回答