当前位置: 首页 > 知识库问答 >
问题:

多个单选按钮ajax post

司业
2023-03-14

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

袁赞
2023-03-14

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

方增
2023-03-14

好的,下面是怎么做的。首先,向表单中添加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;

在这之后,我很肯定它会奏效的。

 类似资料:
  • 主要内容:Checkbutton复选框控件单选框按钮控件(Radiobutton),同样允许用户选择具体的选项值,不过与 Listbox 相比,单选按钮控件仅允许用户选择单一的选项值,各个选项值之间是互斥的关系,因此只有一个选项可以被用户选择。 Radiobutton 控件通常都是成组出现的,所有控件都使用相同的变量。Radiobutton 可以包含文本或图像,每一个按钮都可以与一个 Python 函数相关联。当按钮被按下时,对应的函数会

  • 问题内容: 可以在一个表单中有多个单选按钮组吗?通常选择一个按钮会取消选择前一个按钮,我只需要取消选择一组按钮中的一个即可。 问题答案: 设置相等的属性以创建组;

  • 我打算写一个程序,我将给用户一个选择从8*8矩阵。因为我的声誉低于10,我不能包括图像,但请放心,这只是一个正常的8*8矩阵。我计划在我的Java程序中用8*8=64个单选按钮可视化它。用户一次只能选择一个单选按钮,所以这意味着所有64个按钮都属于同一个按钮组。 现在,我如何管理动作监听器?为64个单选按钮中的每一个设置64个单独的动作监听器是不可能的(真的很无聊)。由于所有64个单选按钮都在同一

  • 主要内容:创建单选按钮,单选按钮组,单选按钮事件,单选按钮焦点单选按钮通常组合在一起,以便用户进行单选,即用户只能在单选按钮列表中选择一个项目。 例如,当选择鞋子尺寸时,我们通常从列表中选择一个尺寸。 单选按钮只能执行:选择或取消选择。 以下代码显示,当放置在中时,只能选择一个。 上面的代码生成以下结果。 创建单选按钮 包中的类有两个构造函数。 要为其标签创建一个带有空字符串的单选按钮,然后再设置标签。 要创建具有指定标签的单选按钮。 方法带有参数可以显式选

  • 主要内容:硬编码的单选按钮,单选按钮内项,由地图生成的单选按钮以下部分显示如何使用JSF中的创建单选按钮。 标签呈现一组类型为“”的HTML输入元素,并使用HTML表格和标签标签进行格式化。 以下JSF代码 - 被渲染生成以下HTML代码 - 硬编码的单选按钮 以下是文件: 中的代码。 以下是文件: 中的代码 - 以下是文件: 中的代码 - 单选按钮内项 以下是文件: 中的代码。 以下是文件: 中的代码。 以下是文件: 中的代码。 由地图生成的单选按钮 以下

  • 问题内容: 我知道在某些Google线程中已经提到了这一点,但是我仍然找不到将无线电输入绑定到模型的正确解决方案(以简洁的方式), 目前,我有HTML: 在控制器中: 这不起作用(与复选框相同)… 关于如何在不丢失数据绑定的情况下在第一个单选按钮上设置默认值的任何想法? 谢谢! 问题答案: 我认为您应该在这两个单选按钮中使用具有不同值的相同变量。 然后,您应该根据用户输入设置“ Rma”或“ De