【问题标题】:Get the radio value without refreshing the page [duplicate]在不刷新页面的情况下获取单选值[重复]
【发布时间】:2014-10-13 15:53:17
【问题描述】:

我想制作一个在 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来避免页面刷新。检查这个stackoverflow.com/questions/20352799/…
  • 没有加载页面没关系。我只是无法获得价值......
  • 我检查了所有其他答案,但没有任何效果,所以可以不将其标记为重复吗?这很重要,我真的需要解决这个问题。谢谢!

标签: javascript php jquery mysql ajax


【解决方案1】:

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

【讨论】:

  • 谢谢但结果是一样的...
  • 它返回了什么?
  • “else”语句中的“差”。如果我删除此语句,则不会发生任何事情...
  • name: cname 应该是 radios: cname
  • 天啊...非常感谢!我不敢相信这是如此明显的事情......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-25
  • 1970-01-01
  • 2017-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多