如果您想了解使用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 – 如果选择了另一个单选按钮,则取消选择单选按钮
- jquery – 显示和隐藏基于单选按钮单击的div [复制]
- jquery使用EasyUI Tree异步加载JSON数据(生成树)
- jquery启用/禁用基于单选按钮的文本框
使用jQuery,PHP和MySQL加载JSON数据,用于单选按钮(jquery加载json文件)
出于某种原因,我似乎无法用相应的数据填充第三组.它只是保持空白:(
调用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
并填写一些自定义值.
解决方法
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 – 如果选择了另一个单选按钮,则取消选择单选按钮
<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的内容 – 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数据(生成树)
这几天因为工作需要,要做一个支持无限级的菜单。
我也是菜鸟一只,能想到的东西不多,所以用了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 + ">>" ); });
其实,主要问题在于后台对数据的处理,即如何能够转化为 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启用/禁用基于单选按钮的文本框
>每当用户单击单选按钮时,应启用文本框
>当用户点击某个其他单选按钮时,文本框应该再次被禁用.
我可以使用以下代码启用最初禁用的复选框.
$("#DevGroup_OTHER").click(function(){ $("#otherDevText").attr("disabled",""); })
我的问题:
>但是如何禁用文本框?
>使用jQuery有更简单的解决方案吗?
问候
解决方法
$('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启用/禁用基于单选按钮的文本框的相关知识,请在本站寻找。
本文标签: