不刷新页面获取单选框的值

4
我希望制作一个表单,将反馈(好/中/差)发送到mysql数据库,而无需加载我的页面。它的工作正常,但是它无法识别我发送的哪个值(如果发送了好、中或差)。以下是我的表单:
<form method="post" id="radio_fb" style="margin-top:-90px;">
    <p>
        <input type="radio" name="radios" id="poor" value="poor" /><label for="poor">Poor</label>
        <input type="radio" name="radios" id="average" value="average" checked="checked" /><label for="average">Average</label>
        <input type="radio" name="radios" id="good" value="good" /><label for="good">Good</label>
        <input type="hidden" name="url" value="<?php echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];?> "/>
        <input type="submit" name="submitter" value="Send" id="submit" />
    </p>
</form>

这是我的jQuery代码:

jQuery(document).ready(function($) {
    $("#radio_fb").submit(function() {
        cname = this.radios.value;
        curl = this.url.value;
        submitter = this.submitter;

        var data = {
            name: cname,
            url: curl
        };
        $.post("ajax.php", data, function() {
            submitter.value="Sent";
            submitter.disabled=true;            
        });

        return false;

    });
});

以下是将值存储到数据库的函数:

<?php
include_once('config.php');

if ($_POST['radios'] == 'good') {
    $url = $_POST['url'];
    $bdd->exec('INSERT INTO feedback(id, url, avis) VALUES ("", "'. $url .'", "Good")');
} else if ($_POST['radios'] == 'average') {
    $url = $_POST['url'];
    $bdd->exec('INSERT INTO feedback(id, url, avis) VALUES ("", "'. $url .'", "Average")');
} else {
    $url = $_POST['url'];
    $bdd->exec('INSERT INTO feedback(id, url, avis) VALUES ("", "'. $url .'", "Poor")');
}

?>

有什么办法可以解决这个问题吗?我查看了所有的答案,但是没有起作用:我的函数一直返回else语句(如果我删除它,则不返回任何内容)。


你需要使用preventDefault来避免页面刷新。查看这个链接:https://dev59.com/FWIj5IYBdhLWcg3wWj-d - bansi
没关系,页面加载不了。我只是无法获取值... - Simon
我检查了所有其他答案,但没有一个有效,所以是否可能不将其标记为重复?这很重要,我真的需要解决这个问题。谢谢! - Simon
1个回答

1
尝试像这样做: var cname = $('input:radio[name=radios]:checked').val();

谢谢您,但结果还是一样的... - Simon
它返回什么? - Mohit
如果我从“else”语句中删除“Poor”,那么什么也不会发生... - Simon
将“name: cname”更改为“radios: cname”。 - bansi
哦,我的天啊...非常感谢!我简直不敢相信这是如此明显的事情... - Simon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接