javascript - 使用ajax提交获取检查值

标签 javascript jquery radio-button

首先,我是 ajax 和 Java 脚本的新手。我花了几天时间解决这个问题,但我仍然没有弄清楚。我已经阅读了具有类似问题的线程,但我仍然无法正确理解。所以就这样;

非常简单,我想发布三个单选按钮之一的选中值。我得到的只是第一个单选按钮的值..

我已经尝试了几件事,但我精简了代码,这样可能更容易看出问题出在哪里:-)

ajax

<script type"text="" javascript"="">
$(document).ready(function(){
    $("form#submit").submit(function() {
    // we want to store the values from the form input box, then send via ajax below
    var svar     = $('#svar').attr('value');
    var date     = $('#date').attr('value');
    var email     = $('#email').attr('value');

        $.ajax({
            type: "POST",
            url: "ajax.php",
            data: "svar="+ svar + "&email=" + email + "&date=" + date,
            success: function(){
                $('form#submit').hide();
                //$('form#submit :input').val("");
                $('div.success').fadeIn();
            }
        });
    return false;
    });
});
</script>

表格

<form id="submit" method="post" name="submit" action="">
            <fieldset>
            <legend>Dagens spørgsmål: <? echo $row['question'];?></legend>
                <br>
                <input type="radio" name="svar" id="svar" value="1"><? echo $row['opt1'];?>
                <br>
                <input type="radio" name="svar" id="svar" value="2"><? echo $row['opt2'];?>
                <br>
                <input type="radio" name="svar" id="svar" value="3"><? echo $row['opt3'];?>
                <br>
                    <input name="email" id="email" type="hidden" value="<? echo $email  ?>" />
                    <input name="date" id="date" type="hidden" value="<? echo $date  ?>" />

                <br><br>
                <button type="submit" class="button positive"> <img src="img/tick.png" alt=""> Svar på dagens spørgsmål </button>
            </fieldset>
        </form>

Ajax.php

<?php

    include ("dbc.php");

// CLIENT INFORMATION
    $email        = htmlspecialchars(trim($_POST['email']));
    $date        = htmlspecialchars(trim($_POST['date']));
    $svar        = htmlspecialchars(trim($_POST['svar']));



//stuff from answers

        mysql_query("INSERT INTO answers
        (`email`,`day`,`answer`)
        VALUES
        ('$email','$date','$svar')") or die(mysql_error());

?>

希望你们中的聪明人能找到解决方案..因为这件事让我发疯

最佳答案

您有几个问题。

首先,您的 HTML 是 invalid 。 ID 必须唯一,因此每个单选按钮都必须有自己的 ID。您可以通过为一组单选按钮指定相同的名称来将它们关联起来。 (拥有唯一的 ID 后,您可以使用 FOR 属性将标签与每个标签关联起来,从而使屏幕阅读器更容易阅读并提供更大的点击目标,从而提高可访问性)。

其次,单选按钮的值是固定的。问题是“成功与否?”这是通过查看是否被检查来确定的。如果您手动执行此操作,则必须循环组中的每个单选按钮,直到找到一个已选中的单选按钮(或使用仅与选中的比率按钮匹配的选择器(:检查))。

第三,您通过将字符串混合在一起来构建表单数据,而不确保数据是 URL 安全的(使用 encodeURIComponent )。

解决方案是忘记手动执行所有这些操作,只需使用 jQuery serialize表单上的方法

关于javascript - 使用ajax提交获取检查值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7954195/

相关文章:

javascript - Phonegap NFC 不工作

jquery - Asp .net文档准备功能中添加Chosen Image时如何防止页面不断刷新

javascript - 一堆元素的旋转木马滑动

android - 为什么 RadioGroup 选择多个 RadioButtons

javascript - 如何防止 'type-jacking'?

javascript - 将大字符串 Ajax 发送到 PHP

javascript - 查找段落内元素的周围字符

javascript - 单击javascript中具有单选按钮的div后如何在div中添加类

python - Django RadioSelect 从模型中选择

javascript - 在 Chrome 应用中使用 Fabric.js