GVKun编程网logo

使用jQuery,PHP和MySQL加载JSON数据,用于单选按钮(jquery加载json文件)

16

如果您想了解使用jQuery,PHP和MySQL加载JSON数据,用于单选按钮和jquery加载json文件的知识,那么本篇文章将是您的不二之选。我们将深入剖析使用jQuery,PHP和MySQL加载

如果您想了解使用jQuery,PHP和MySQL加载JSON数据,用于单选按钮jquery加载json文件的知识,那么本篇文章将是您的不二之选。我们将深入剖析使用jQuery,PHP和MySQL加载JSON数据,用于单选按钮的各个方面,并为您解答jquery加载json文件的疑在这篇文章中,我们将为您介绍使用jQuery,PHP和MySQL加载JSON数据,用于单选按钮的相关知识,同时也会详细的解释jquery加载json文件的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

使用jQuery,PHP和MySQL加载JSON数据,用于单选按钮(jquery加载json文件)

使用jQuery,PHP和MySQL加载JSON数据,用于单选按钮(jquery加载json文件)

我正在尝试填充第三组radiobuttons作为以下脚本的补充: 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},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

并填写一些自定义值.

解决方法

1)DB uddate

ALTER TABLE fruit ADD COLUMN `fruittype` varchar(50) NOT NULL;
UPDATE fruit SET fruittype = 'description' /* WHERE name = 'Apple'*/;

2)代码更新

<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">
    $(document).ready(function() {
        $('input[name=fruitName]').change(function() {
            var fruitName = $('input[name=fruitName]:checked').val();
            $.getJSON('test.PHP',function(fruit) {
                var html = '';
                $.each(fruit,array) {
                    html = html + '<input type="radio" name="fruitvariety" value="' + array['variety'] + '" /><label>' + array['variety'] + '</label> ';
                });
                $('#varieties').html(html);
            });
        });
        $('input[name=fruitvariety]').live('click',function() {
        var fruitvariety = $('input[name=fruitvariety]:checked').val();
            $.getJSON('test.PHP',function(fruit) {
            var html = '';
                $.each(fruit,array) {
                html = html + '<input type="radio" name="fruitType" value="' + array['fruittype'] + '" /><label>' + array['fruittype'] + '</label> ';
                });
            $('#fruittype').html(html);
            });
        });
    });
    </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>

jquery – 如果选择了另一个单选按钮,则取消选择单选按钮

jquery – 如果选择了另一个单选按钮,则取消选择单选按钮

考虑以下标记:

<form>

<div>
<ul>
    <li><label for="firstchoice_1">First choice</label><input type="radio" name="firstchoice" value="1" id="firstchoice_1" /></li>
    <li><label for="secondchoice_1">Second choice</label><input type="radio" name="secondchoice" value="1" id="secondchoice_1" /></li>
</ul>
</div>

<div>
<ul>
    <li><label for="firstchoice_2">First choice</label><input type="radio" name="firstchoice" value="2" id="firstchoice_2" /></li>
    <li><label for="secondchoice_2">Second choice</label><input type="radio" name="secondchoice" value="2" id="secondchoice_2" /></li>
</ul>
</div>

</form>

我想要做的是每当选择另一个时,如果每个.project组中的单选按钮都禁用一个(因此只能选择每个组中的第一选择或第二选择).我知道怎么做是在一个特定的情况下禁用一个特定的单选按钮,但我不知道如何概括它,因为他们可能是一百个这样的.project组.

编辑:请注意,只能选择整个第一选择(反之亦然).该名称已经使用了相同的名称.在整个标记中使用相同的名称属性.只有两个不同的名字.

解决方法

只需给它们相同的名称,但不同的值;这将自动发生,因为这是单选按钮的设计方式.

jquery – 显示和隐藏基于单选按钮单击的div [复制]

jquery – 显示和隐藏基于单选按钮单击的div [复制]

参见英文答案 > How to use jQuery to show/hide divs based on radio button selection?6个
我希望能够使用单选按钮和jQuery动态更改显示div的内容 – HTML:
<div id="myRadioGroup">

2 Cars<input type="radio" name="cars" checked="checked" value="2"  />

3 Cars<input type="radio" name="cars" value="3" />

<div id="twoCarDiv">
2 Cars Selected
</div>
<div id="threeCarDiv">
3 Cars
</div>
</div>

和jQuery:

<script>
$(document).ready(function(){ 
    $("input[name$='cars']").click(function() {
        var test = $(this).val();
        $("div.desc").hide();
        $("#"+test).show();
    }); 
});
</script>

这没什么,div总是表现出来.我确定这很简单,但我在jQuery很差.

解决方法

你走在正确的轨道上,但你忘记了两件事:

>将desc类添加到描述div中
>您有输入的数值,但ID有文本.

我已经修复了上面的内容并且还添加了一行来初始化hide()第三个描述div.

检查一下 – http://jsfiddle.net/VgAgu/3/

HTML

<div id="myRadioGroup">
    2 Cars<input type="radio" name="cars" checked="checked" value="2"  />
    3 Cars<input type="radio" name="cars" value="3" />

    <div id="Cars2">
        2 Cars Selected
    </div>
    <div id="Cars3"https://www.jb51.cc/tag/dis/" target="_blank">display: none;">
        3 Cars
    </div>
</div>

JQuery的

$(document).ready(function() {
    $("input[name$='cars']").click(function() {
        var test = $(this).val();

        $("div.desc").hide();
        $("#Cars" + test).show();
    });
});

jquery使用EasyUI Tree异步加载JSON数据(生成树)

jquery使用EasyUI Tree异步加载JSON数据(生成树)

这几天因为工作需要,要做一个支持无限级的菜单。

我也是菜鸟一只,能想到的东西不多,所以用了Easy UI的tree组件。

不得不说,easyui确实很强大。

因为是无限级菜单,数据量可能有点大,所以考虑采用异步加载。

但是因为后台默认传来的数据是 一个实体,所以又在后台进行了JSON字符串拼接。

最后,在网上找了N多代码,然后又去问了好几个群里的网友,终于搞出来这个小东西。

一、HTML部分代码

  <div id="categoryChooseDiv" title="请选择分类">
       <ul id="MyTree"></ul>
  </div>

html部分很简单,只要放一个ul就可以了。

二、JS部分代码

  function showCategory(){
      $(''#MyTree'').tree({  
         checkbox: false,  
         url: ''/category/getCategorys.java?Id=0'',  
         onBeforeExpand:function(node,param){ 
           $(''#MyTree'').tree(''options'').url = "/category/getCategorys.java?Id=" + node.id;
         },        
        onClick:function(node){
          var state=node.state;
           if(!state){                  //判断当前选中的节点是否为根节点
             currentId=node.id;
            $("#chooseOk").attr( "disabled" , false );  //如果为根节点 则OK按钮可用
            }else{
            $("#chooseOk").attr( "disabled" , true );  //如果不为根节点 则OK按钮不可用
            }
          } 
      });
  }

最后几句代码是因为我这个项目需要,只有选择到最下级节点的时候,才运行点击“确定”。否则不允许。
当用户点击确定的时候,需要获取 当前用户选中节点 的所有父节点

      var nodes=[];      //定义数组用来存放各个节点名称
      var node =$("#MyTree").tree("getSelected"); //当前选中节点
      nodes.push(node.text);            //首先放入当前节点
      var pnode = $(''#MyTree'').tree(''getParent'',node.target); //获取当前节点的父节点
      while(pnode!=null){
        nodes.push(pnode.text);          //依次放入各个父节点,直到根节点为止
        pnode = $(''#MyTree'').tree(''getParent'',pnode.target);
      }
      nodes.reverse();             //数组元素倒序排序
      $.each(nodes,function(){        //循环取值
        var html=this;
          $("#inCategoryDiv").html( $("#inCategoryDiv").html() + html + "&gt;&gt;" );
      }); 

其实,主要问题在于后台对数据的处理,即如何能够转化为 easyui tree才可以识别的JSON数据。

三、后台代码(Java)

 public ResponseEntity<String> findBy(Integer Id ) {
    List<Category> categorys = getcategorys(Id );
    String ss="";
    ss+="[";
    for( Category category : categorys )
       {
       ss+="{";
       //ss += "\"id\": \""+category.getId()+"\",\"text\": \""+category.getName().toString()+"\",\"iconCls\": \"icon-ok\",\"state\": \"closed\"";;
       List<Category> cs = getcategorys( category.getId() );  //判断当前节点是否还有子节点
       if(cs.size()==0){ //没有子节点 设置 state 为空
       ss+=String.format("\"id\": \"%s\", \"text\": \"%s\", \"iconCls\": \"\", \"state\": \"\"", category.getId() , category.getName());
       }else{    // 还有子节点 设置 state为closed
       ss+=String.format("\"id\": \"%s\", \"text\": \"%s\", \"iconCls\": \"\", \"state\": \"closed\"", category.getId() , category.getName());
      }
       ss+="},";
       }
       ss=ss.substring(0, ss.length() - 1); 
       ss+="]";
      return super.responseString(ss); //字符编码转换
    }

大致一个流程就是前台传来ID,然后获取到实体对象,然后对实体进行循环,然后进行字符串处理这里设置state的意义主要在于让 easyui 的tree可以知道当前节点是否为最低级节点,然后在前面显示不同的图标。

总结:

就是这个小东西,折腾了我好几天,呵呵,因为俺太笨了。不过还好最后搞懂了,也理解了很多东西。

以前一直觉得JSON这东西很神秘,现在觉得它还是有规律的。

使用easyui tree的重点之一,就是对JSON数据的处理,有两种方式可以实现:第一就是使用String的format方法。这个大家可以去网上参考一下相关的API等等,我第一次写错了,字符串的占位符应该是 %s  我写成了 {0} 找了半天,才知道问题所在。 第二种方式,就是我上面注释掉的那一行,直接使用字符串拼接。

然后上面获取当前节点的所有父节点的时候,又纠结了半天,去网上找了很多代码,都不能用,最后还是自己想了一招,才得以解决。

优点:可以使用异步加载,支持无限级。

缺点:太繁琐,对后台的数据格式要求过高。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

您可能感兴趣的文章:
  • JavaScript文件的同步和异步加载的实现代码
  • 详解angularjs利用ui-route异步加载组件
  • JS异步加载的三种实现方式
  • 如何使用headjs来管理和异步加载js
  • 异步加载JS、CSS代码(推荐)
  • 浅析JS异步加载进度条
  • 点评js异步加载的4种方式
  • JavaScript异步加载浅析
  • 如何调试异步加载页面里包含的js文件
  • javascript写的异步加载js文件函数(支持数组传参)
  • JavaScript异步加载问题总结

jquery启用/禁用基于单选按钮的文本框

jquery启用/禁用基于单选按钮的文本框

在我的页面(jsp)中,我有一个单选按钮组和一个文本框(最初被禁用).

>每当用户单击单选按钮时,应启用文本框
>当用户点击某个其他单选按钮时,文本框应该再次被禁用.

我可以使用以下代码启用最初禁用的复选框.

$("#DevGroup_OTHER").click(function(){          
    $("#otherDevText").attr("disabled","");
})

我的问题:

>但是如何禁用文本框?
>使用jQuery有更简单的解决方案吗?

问候

解决方法

始终禁用它(对于每个单选按钮),然后重新启用它,如果单选按钮是启用文本框的按钮.除非用户在1980年建造的机器上,否则会很快,不会有人知道.
$('radio').click(function() { 
    $("#otherDevText").prop("disabled",true);
    if($(this).attr('id') == 'enable_textBox') {
        $("#otherDevText").prop("disabled",false);
    }
});

或者,如果有多个单选按钮将启用文本框:

$('input:radio').click(function() { 
  $("#otherDevText").prop("disabled",true);
  if($(this).hasClass('enable_tb')) {
      $("#otherDevText").prop("disabled",false);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<fieldset id="DevGroup_OTHER">
  <input type="radio" id="d1" name="r1" value="d1">dev1 <br /> 
  <input type="radio" id="d2" name="r1" value="d2">dev2 <br/> 
  <input type="radio" id="d3" name="r1" value="d3"> enable
</fieldset>
<br />
<input id="otherDevText" name="tb1" disabled="disabled"
       value="some TextBox value" type="text">

合理?

关于使用jQuery,PHP和MySQL加载JSON数据,用于单选按钮jquery加载json文件的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于jquery – 如果选择了另一个单选按钮,则取消选择单选按钮、jquery – 显示和隐藏基于单选按钮单击的div [复制]、jquery使用EasyUI Tree异步加载JSON数据(生成树)、jquery启用/禁用基于单选按钮的文本框的相关知识,请在本站寻找。

本文标签: