当前位置: 首页 > 面试题库 >

使用jQuery,PHP和MySQL为单选按钮加载JSON数据

长孙景焕
2023-03-14
问题内容

我正在尝试填充第三组单选按钮,作为以下脚本的补充:http : //www.electrictoolbox.com/json-data-jquery-php-
radio-buttons/

由于某种原因,我似乎无法用相应的数据填充第三组。它只是保持空白:(

调用该 populateFruittype()函数仅会返回[ ],而populateFruitVariety()正确返回json数据。

getdata.php(数据库连接/获取数据)

<?php

$dsn = "mysql:host=localhost;dbname=mydb";
$username = "username";
$password = "password";
$pdo = new PDO($dsn, $username, $password);

$rows = array();

if(isset($_GET['fruitName'])) {
    $stmt = $pdo->prepare("SELECT DISTINCT variety FROM fruit WHERE name = ? ORDER BY variety");
    $stmt->execute(array($_GET['fruitName']));
    $rows[] = $stmt->fetchAll(PDO::FETCH_ASSOC);
}

if(isset($_GET['fruitVariety'] )) {
    $stmt = $pdo->prepare("SELECT DISTINCT fruittype FROM fruit WHERE variety = ? ORDER BY fruittype");
    $stmt->execute(array($_GET['fruitVariety']));
    $rows[] = $stmt->fetchAll(PDO::FETCH_ASSOC);
}

echo json_encode($rows);

?>

的HTML

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>Toevoegen</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>

    <script language="javascript" type="text/javascript">

        function populateFruitVariety() {

            var fruitName = $('input[name=fruitName]:checked').val();

            $.getJSON('getdata.php', {fruitName: fruitName}, function(fruit) {

                var html = '';
                $.each(fruit, function(index, array) {
                    html = html + '<label><input type="radio" name="fruitVariety" value="' + array['variety'] + '" />' + array['variety'] + '</label> ';
                });
                $('#varieties').html(html);

            });

        }

        function populateFruittype() {

            var fruitVariety = $('input[name=fruitVariety]:checked').val();

            $.getJSON('getdata.php', {fruitVariety: fruitVariety}, function(fruit) {

                var html = '';
                $.each(fruit, function(index, array) {
                    html = html + '<label><input type="radio" name="fruitType" value="' + array['fruittype'] + '" />' + array['fruittype'] + '</label> ';
                });
                $('#fruittype').html(html);

            });

        }

        $(function() {
            $('input[name=fruitName]').change(function() {
                populateFruitVariety();
            });
        });

        $(function() {
            $('input[name=fruitVariety]').change(function() {
                populateFruittype();
            });
        });


    </script>

</head>
<body>


<form>

    <div>
        <strong>Fruit:</strong>
        <label><input type="radio" name="fruitName" value="Apple"/>Apple</label>
        <label><input type="radio" name="fruitName" value="Banana"/>Banana</label>
        <label><input type="radio" name="fruitName" value="Orange"/>Orange</label>
        <label><input type="radio" name="fruitName" value="Pear"/>Pear</label>
    </div>
    <div>
        <strong>Variety:</strong>
        <span id="varieties"></span>
    </div>
    <div>
        <strong>Type:</strong>
        <span id="fruittype"></span>
    </div>
</form>
</body>
</html>
可以在以下位置找到数据库查询和内容: http
//www.electrictoolbox.com/mysql-example-
table/

只需添加:

`fruittype` varchar(50) NOT NULL

并用一些自定义值填充


问题答案:

问题解决了。

.change(function() 必须是 .live('click', function()



 类似资料:
  • 我在弄清楚如何通过JQUERY传递选中的单选按钮值并最终传递给php时遇到了一点麻烦。 以下是html标记: 然后,我试图通过jquery传递数据,这样就可以通过php捕获数据。这是我现在的jquery标记: 当我查看Chrome开发工具的传递时,捐赠字段根本没有传递。 有人能解释一下我错过了什么吗?我尝试了各种传递捐赠价值的方法,但都没有用。 谢谢你!

  • 我有并发布了jQuery代码,用于检查选中了哪一个单选按钮,然后更改其中一些按钮的颜色。此外,我还想在其中一个按钮被按下后禁用这些按钮。我的问题是,当我检查例如'a'时,所有的答案都变成红色,而不是'a'变成绿色,所有其他的都变成红色。 null null

  • 所以,我有一个关于超文本标记语言中输入类型无线电的问题。如你所知,你可以把作为一个值,这将把它标记为选中。 故事是这样的:我从数据库中得到一个0或1的值,然后检查它是0还是1,然后将其中一个单选按钮标记为选中。 我的代码如下: 我现在的问题是,每当我试图通过单击它来标记另一个单选按钮为选中时,两个单选按钮都被选中? 我认为这可能与我检查从数据库返回的值是0还是1有关,它会一直检查其中一个单选按钮,

  • 问题内容: 我尝试用jQuery检查单选按钮。这是我的代码: 和JavaScript: 不起作用: 不起作用: 不起作用: 你还有其他主意吗?我想念什么? 问题答案: 对于等于或大于(> =)1.6的jQuery版本,请使用: 对于(<)1.6之前的版本,请使用: 提示:之后, 您可能还想打电话或单击单选按钮。 查看评论以获取更多信息。

  • 问题内容: 我有一个搜索列表,可以正常工作。该搜索根据找到的单词是否与姓名,家庭和工作相似来进行。现在我想分开搜索。我的意思是,创建三个单选按钮。点击第一个按名称搜索,第二个按家庭搜索,第三个按职位搜索时。 所以我的基本代码在这里: 这里需要添加三个单选按钮。(searchform.php) 搜索search在这里: searchresult.php 如您所见,在这种搜索方法中,当用户在搜索框中输

  • 这是一个 列表 拓展,可以用来创建单选和复选按钮组。 复选按钮组 <div class="list-block"> <ul> <!-- Single chekbox item --> <li> <label class="label-checkbox item-content"> <!-- Checked by default -->