??xml version="1.0" encoding="utf-8" standalone="yes"?>
实现要求Q?
判断用户是否修改了输入的内容Q要能判断input中的checkboxQtextQradio{,不知道会多少个inputQ也不知道input的ID和nameQ要在客L判断是否修改Q不能
生提交。还要同时满IE和firefox两种环境。也要支持master和content늚使用?
解决ҎQ?
处理思\Q在面加蝲时记录所有的input的值或状态,如果要求在用戯行修Ҏ作时立即调整控g状态,则在数据区div上的onclick和onkeypress事g里调用检查数?/span>
是否改变的函敎ͼq设|相应控件的状态(用ha_setch())。如果是在提交或用户手动控制查过E时Q则在相应的操作事g中调用检查数据是否改变(例在button的onclick
()中用ha_checkin()控制提交)?
以下是实C?
var ha_last=new Array;//定义一个全局的空对象Q存放所有的初始倹{?
function ha_get()//d初始?
{ var ha_input = document.getElementsByTagName("input");
for (var i=0;i<ha_input.length;i++)
{
if (ha_input[i].type=="password"){ ha_last.push(ha_input[i].value);}//Ҏ面需要设|type的值和对象属?
if (ha_input[i].type=="radio") {ha_last.push(ha_input[i].checked);}//要保证检查的范围是否准确
}
}
window.onload=ha_get;//l定d初始值的函数
function ha_checkin()//查新的输入值和初始值是否相{。返回判断结果。true为没有发生修改,false为有修改?
{ var ha_now=new Array;
var ha_input = document.getElementsByTagName("input");
for (var i=0;i<ha_input.length;i++)
{
if (ha_input[i].type=="password"){ ha_now.push(ha_input[i].value);}//Ҏ面需要设|type的值和对象属性?
if (ha_input[i].type=="radio") {ha_now.push(ha_input[i].checked);}//也要保证和ha_get()中检查的标签怸?
}
if (ha_now.toString()==ha_last.toString())//没修?
{return true;}
else//有修?
{return false;}
}
function ha_setch(){//讄相应的控件状?
if (ha_checkin())//没有变化
//改变控g的显C和功能状?
else//有变?
//改变控g的显C和功能状?
}
做了适当的修攏V最后在button里面onclick直接调用
var ha_last=new Array;//定义一个全局的空对象Q存放所有的初始倹{?br />
function ha_get()//d初始?br />
{
var ha_input = document.getElementsByTagName("input");
ha_last.push($("#select").val());//采用jquery获取select 选择的?br />
for (var i=0;i<ha_input.length;i++)
{
if (ha_input[i].type=="text"){ ha_last.push(ha_input[i].value);}//Ҏ面需要设|type的值和对象属?br />
}
}
window.onload=ha_get;//l定d初始值的函数
function ha_checkin(action)//查新的输入值和初始值是否相{。返回判断结果。true为没有发生修改,false为有修改?br />
{
if(action=="update"){
var ha_now=new Array;
var ha_input = document.getElementsByTagName("input");
ha_now.push($("#select").val());
for (var i=0;i<ha_input.length;i++)
{
if (ha_input[i].type=="text"){ ha_now.push(ha_input[i].value);}//Ҏ面需要设|type的值和对象属性?br />
}
if (ha_now.toString()==ha_last.toString())//没修?br />
{
alert("没有修改");
return false;
}
else//有修?br />
{
// return true;
}
}
}
jQuery 是我最喜欢的一个Javascript框架Q下表中包含?40+可以为jQuery爱好者们使用的插件。我断定一定还有下表没有包括的Q如果你q知道其他的好东西,Ƣ迎与大家分享?/p>
Ajax File Upload
jQUploader
Multiple File Upload plugin
jQuery File Style
Styling an input type file
Progress Bar Plugin
jQuery Validation
Auto Help
Simple jQuery form validation
jQuery XAV - form validations
jQuery AlphaNumeric
Masked Input
TypeWatch Plugin
Text limiter for form fields
Ajax Username Check with jQuery
jQuery Combobox
jQuery controlled dependent (or Cascadign) Select List
Multiple Selects
Select box manipulation
Select Combo Plugin
jQuery - LinkedSelect
Auto-populate multiple select boxes
Choose Plugin (Select Replacement)
jQuery Form Plugin
jQuery-Form
jLook Nice Forms
jNice
Ping Plugin
Toggle Form Text
ToggleVal
jQuery Field Plugin
jQuery Form’n Field plugin
jQuery Checkbox manipulation
jTagging
jQuery labelcheck
Overlabel
3 state radio buttons
ShiftCheckbox jQuery Plugin
Watermark Input
jQuery Checkbox (checkboxes with imags)
jQuery SpinButton Control
jQuery Ajax Form Builder
jQuery Focus Fields
jQuery Time Entry
jQuery UI Datepicker
jQuery date picker plugin
jQuery Time Picker
Time Picker
ClickPick
TimePicker
Farbtastic jQuery Color Picker Plugin
Color Picker by intelliance.fr
jQuery Star Rating Plugin
jQuery Star Rater
Content rater with asp.net, ajax and jQuery
Half-Star Rating Plugin
Autocomplete Box
jQuery Suggest
jQuery Autocomplete
jQuery Autocomplete Mod
jQuery Autocomplete by AjaxDaddy
jQuery Autocomplete Plugin with HTML formatting
jQuery Autocompleter
AutoCompleter (Tutorial with PHP&MySQL)
quick Search jQuery Plugin
jTagEditor
WYMeditor
jQuery jFrame
Jeditable - edit in place plugin for jQuery
jQuery editable
jQuery Disable Text Select Plugin
Edit in Place with Ajax using jQuery
jQuery Plugin - Another In-Place Editor
TableEditor
tEditable - in place table editing for jQuery
jMedia - accessible multi-media embedding
JBEdit - Ajax online Video Editor
jQuery MP3 Plugin
jQuery Media Plugin
jQuery Flash Plugin
Embed QuickTime
SVG Integration
jQuery Multimedia Portfolio
jQuery YouTube Plugin
ThickBox
jQuery lightBox plugin
jQuery FancyBox
jQuery Multimedia Portfolio
jQuery Image Strip
jQuery slideViewer
jQuery jqGalScroll 2.0
jQuery - jqGalViewII
jQuery - jqGalViewIII
jQuery Photo Slider
jQuery Thumbs - easily create thumbnails
jQuery jQIR Image Replacement
jCarousel Lite
jQPanView
jCarousel
Interface Imagebox
Image Gallery using jQuery, Interface & Reflactions
simple jQuery Gallery
jQuery Gallery Module
EO Gallery
jQuery ScrollShow
jQuery Cycle Plugin
jQuery Flickr
jQuery Lazy Load Images Plugin
Zoomi - Zoomable Thumbnails
jQuery Crop - crop any image on the fly
Image Reflection
jQuery Plugin googlemaps
jMaps jQuery Maps Framework
jQmaps
jQuery & Google Maps
jQuery Maps Interface forr Google and Yahoo maps
jQuery J Maps - by Tane Piper
Tetris with jQuery
jQuery Chess
Mad Libs Word Game
jQuery Puzzle
jQuery Solar System (not a game but awesome jQuery Stuff)
jQuery Memory
UI/Tablesorter
jQuery ingrid
jQuery Grid Plugin
Table Filter - awesome!
TableEditor
jQuery Tree Tables
Expandable “Detail” Table Rows
Sortable Table ColdFusion Costum Tag with jQuery UI
jQuery Bubble
TableSorter
Scrollable HTML Table
jQuery column Manager Plugin
jQuery tableHover Plugin
jQuery columnHover Plugin
jQuery Grid
TableSorter plugin for jQuery
tEditable - in place table editing for jQuery
jQuery charToTable Plugin
jQuery Grid Column Sizing
jQuery Grid Row Sizing
Flot
jQuery Wizard Plugin
jQuery Chart Plugin
Bar Chart
Accessible Charts using Canvas and jQuery
jQuery Corner
jQuery Curvy Corner
Nifty jQuery Corner
Transparent Corners
jQuery Corner Gallery
Gradient Plugin
jQuery Spoiler plugin
Text Highlighting
Disable Text Select Plugin
jQuery Newsticker
Auto line-height Plugin
Textgrad - a text gradient plugin
LinkLook - a link thumbnail preview
pager jQuery Plugin
shortKeys jQuery Plugin
jQuery Biggerlink
jQuery Ajax Link Checker
Chili jQuery code highlighter plugin
jScroller
jQuery Plugin - Tooltip
jTip - The jQuery Tool Tip
clueTip
BetterTip
Flash Tooltips using jQuery
ToolTip
jQuery Tabs Plugin - awesome! [demo nested tabs ]
another jQuery nested Tab Set example (based on jQuery Tabs Plugin)
jQuery idTabs
jdMenu - Hierarchical Menu Plugin for jQuery
jQuery SuckerFish Style
jQuery Plugin Treeview
treeView Basic
FastFind Menu
Sliding Menu
Lava Lamp jQuery Menu
jQuery iconDock
jVariations Control Panel
ContextMenu plugin
clickMenu
CSS Dock Menu
jQuery Pop-up Menu Tutorial
Sliding Menu
jQuery Plugin Accordion
jQuery Accordion Plugin Horizontal Way
haccordion - a simple horizontal accordion plugin for jQuery
Horizontal Accordion by portalzine.de
HoverAccordion
Accordion Example from fmarcia.info
jQuery Accordion Example
jQuery Demo - Expandable Sidebar Menu
Sliding Panels for jQuery
jQuery ToggleElements
Coda Slider
jCarousel
Accesible News Slider Plugin
Showing and Hiding code Examples
jQuery Easing Plugin
jQuery Portlets
AutoScroll
Innerfade
CodaSlider
UI/Draggables
EasyDrag jQuery Plugin
jQuery Portlets
jqDnR - drag, drop resize
Drag Demos
XSLT Plugin
jQuery Ajax call and result XML parsing
xmlObjectifier - Converts XML DOM to JSON
jQuery XSL Transform
jQuery Taconite - multiple Dom updates
RSS/ATOM Feed Parser Plugin
jQuery Google Feed Plugin
Wresize - IE Resize event Fix Plugin
jQuery ifixpng
jQuery pngFix
Link Scrubber - removes the dotted line onfocus from links
jQuery Perciformes - the entire suckerfish familly under one roof
Background Iframe
QinIE - for proper display of Q tags in IE
jQuery Accessibility Plugin
jQuery MouseWheel Plugin
jQuery Impromptu
jQuery Confirm Plugin
jqModal
SimpleModal
jQuery Style Switcher
JSS - Javascript StyleSheets
jQuery Rule - creation/manipulation of CSS Rules
jPrintArea
FlyDOM
jQuery Dimenion Plugin
jQuery Loggin
Metadata - extract metadata from classes, attributes, elements
Super-tiny Client-Side Include Javascript jQuery Plugin
Undo Made Easy with Ajax
JHeartbeat - periodically poll the server
Lazy Load Plugin
Live Query
jQuery Timers
jQuery Share it - display social bookmarking icons
jQuery serverCookieJar
jQuery autoSave
jQuery Puffer
jQuery iFrame Plugin
Cookie Plugin for jQuery
jQuery Spy - awesome plugin
Effect Delay Trick
jQuick - a quick tag creator for jQuery
Metaobjects
elementReady
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>jQuery Starterkit</title>
<link rel="stylesheet" type="text/css" media="screen" href="style.css" />
<script type="text/javascript" src="http://www.css88.com/jquery-1.3.2/jquery-1.3.2.min.js"></script>
<script src="jquery.js" type="text/javascript"></script>
<script src="custom.js" type="text/javascript"></script>
<script src="jquery.tablesorter.js" type="text/javascript"></script>
<script src="jquery-latest.js" type="text/javascript"></script>
<script src="jquery.tablesorter.min.js" type="text/javascript"></script>
<script src="jquery.metadata.js" type="text/javascript"></script>
</head>
<body>
<!-- tablecode taken from tablesorter examples -->
<table class="tablesorter " cellspacing=1>
<thead>
<tr>
<th class="{sorter:'text'}">Email</th>
<th>Id</th>
<th>Phone</th>
<th>Total</th>
<th>Ip</th>
<th class="{sorter:'procent'}">Url</th>
<th>Time</th>
<th>ISO Date</th>
<th>UK Date</th>
</tr>
</thead>
<tbody>
<tr>
</tr>
<tr>
<td>henry@mountdev.net</td>
<td>35889</td>
<td>941-964-9543</td>
<td>$2776.09</td>
<td>119.232.182.142</td>
<td>http://www.gmail.com</td>
<td>3:54</td>
<td>1974/1/19</td>
<td>19/1/1974</td>
</tr>
<tr>
<td>christian@reno.gov</td>
<td>60021</td>
<td>941-964-5617</td>
<td>$2743.41</td>
<td>167.209.64.181</td>
<td>http://www.dotnet.ca</td>
<td>10:58</td>
<td>2000/3/25</td>
<td>25/3/2000</td>
</tr>
<tr>
<td>muffins@donuts.com</td>
<td>17927</td>
<td>941-964-9511</td>
<td>$2998.18</td>
<td>210.214.231.182</td>
<td>http://google.se</td>
<td>21:22</td>
<td>1993/1/24</td>
<td>24/1/1993</td>
</tr>
<tr>
<td>muffins@reno.gov</td>
<td>76375</td>
<td>941-964-2757</td>
<td>$1836.09</td>
<td>220.222.93.171</td>
<td>http://www.samba.org</td>
<td>15:22</td>
<td>1988/4/4</td>
<td>4/4/1988</td>
</tr>
<tr>
<td>found@flexomat.com</td>
<td>20953</td>
<td>941-964-5544</td>
<td>$575.42</td>
<td>247.246.235.138</td>
<td>http://gmail.com</td>
<td>3:12</td>
<td>1978/6/10</td>
<td>10/6/1978</td>
</tr>
<tr>
<td>foo@reno.gov</td>
<td>03603</td>
<td>941-964-8942</td>
<td>$1677.07</td>
<td>176.96.162.192</td>
<td>http://www.flexomat.com</td>
<td>19:11</td>
<td>1980/7/31</td>
<td>31/7/1980</td>
</tr>
<tr>
<td>found@flexomat.com</td>
<td>84939</td>
<td>941-964-7004</td>
<td>$3916.83</td>
<td>240.145.198.78</td>
<td>http://www.fish.org</td>
<td>1:29</td>
<td>1980/8/26</td>
<td>26/8/1980</td>
</tr>
<tr>
<td>muffins@reno.gov</td>
<td>95926</td>
<td>941-964-147</td>
<td>$3897.91</td>
<td>105.85.121.209</td>
<td>http://www.flexomat.com</td>
<td>9:50</td>
<td>2003/4/1</td>
<td>1/4/2003</td>
</tr>
</tbody>
</table>
</body>
</html>
custom.js
jQuery(document).ready(function() {
$.tablesorter.defaults.widgets=['zebra'];
$.tablesorter.defaults.sortList=[[0,0]];
$("table").tablesorter();
});
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>jQuery Starterkit</title>
<link rel="stylesheet" type="text/css" media="screen" href="screen.css" />
<script type="text/javascript" src="http://www.css88.com/jquery-1.3.2/jquery-1.3.2.min.js"></script>
<script src="jquery.js" type="text/javascript"></script>
<script src="custom.js" type="text/javascript"></script>
<script src="jquery.tablesorter.js" type="text/javascript"></script>
<script src="jquery-latest.js" type="text/javascript"></script>
<script src="jquery.tablesorter.min.js" type="text/javascript"></script>
<script src="jquery.metadata.js" type="text/javascript"></script>
</head>
<table id="large" cellspacing="0">
<thead>
<tr>
<th>Email</th>
<th>Id</th>
<th>Phone</th>
<th>Total</th>
<th>Ip</th>
<th>Url</th>
<th>Time</th>
<th>ISO Date</th>
<th>UK Date</th>
</tr>
</thead>
<tbody>
<tr>
<td>devo@flexomat.com</td>
<td>66672</td>
<td>941-964-8535</td>
<td>$2482.79</td>
<td>172.78.200.124</td>
<td>http://gmail.com</td>
<td>15:10</td>
<td>1988/12/14</td>
<td>14/12/1988</td>
</tr>
<tr>
<td>henry@mountdev.net</td>
<td>35889</td>
<td>941-964-9543</td>
<td>$2776.09</td>
<td>119.232.182.142</td>
<td>http://www.gmail.com</td>
<td>3:54</td>
<td>1974/1/19</td>
<td>19/1/1974</td>
</tr>
<tr>
<td>christian@reno.gov</td>
<td>60021</td>
<td>941-964-5617</td>
<td>$2743.41</td>
<td>167.209.64.181</td>
<td>http://www.dotnet.ca</td>
<td>10:58</td>
<td>2000/3/25</td>
<td>25/3/2000</td>
</tr>
<tr>
<td>muffins@donuts.com</td>
<td>17927</td>
<td>941-964-9511</td>
<td>$2998.18</td>
<td>210.214.231.182</td>
<td>http://google.se</td>
<td>21:22</td>
<td>1993/1/24</td>
<td>24/1/1993</td>
</tr>
<tr>
<td>muffins@reno.gov</td>
<td>76375</td>
<td>941-964-2757</td>
<td>$1836.09</td>
<td>220.222.93.171</td>
<td>http://www.samba.org</td>
<td>15:22</td>
<td>1988/4/4</td>
<td>4/4/1988</td>
</tr>
<tr>
<td>mendez@gmail.com</td>
<td>45834</td>
<td>941-964-2575</td>
<td>$2805.46</td>
<td>228.170.245.253</td>
<td>http://flexomat.com</td>
<td>11:31</td>
<td>1975/12/12</td>
<td>12/12/1975</td>
</tr>
<tr>
<td>dev@gmail.com</td>
<td>20022</td>
<td>941-964-4967</td>
<td>$3296.54</td>
<td>175.248.70.240</td>
<td>http://www.flexomat.com</td>
<td>4:27</td>
<td>2002/7/3</td>
<td>3/7/2002</td>
</tr>
<tr>
<td>foo@polyester.se</td>
<td>55977</td>
<td>941-964-745</td>
<td>$2953.73</td>
<td>222.114.227.156</td>
<td>http://www.donuts.com</td>
<td>23:49</td>
<td>1977/8/4</td>
<td>4/8/1977</td>
</tr>
<tr>
<td>adam@aftonbladet.se</td>
<td>38867</td>
<td>941-964-6302</td>
<td>$1949.27</td>
<td>116.241.143.196</td>
<td>http://flexomat.com</td>
<td>23:35</td>
<td>1995/7/27</td>
<td>27/7/1995</td>
</tr>
<tr>
<td>devo@donuts.com</td>
<td>51426</td>
<td>941-964-1234</td>
<td>$1067.00</td>
<td>88.96.149.82</td>
<td>http://www.polyester.se</td>
<td>15:17</td>
<td>1986/1/5</td>
<td>5/1/1986</td>
</tr>
<tr>
<td>henry@samba.org</td>
<td>40859</td>
<td>941-964-4856</td>
<td>$3401.19</td>
<td>68.152.250.74</td>
<td>http://www.flexomat.com</td>
<td>4:36</td>
<td>1990/3/7</td>
<td>7/3/1990</td>
</tr>
<tr>
<td>found@dotnet.ca</td>
<td>23986</td>
<td>941-964-2686</td>
<td>$1393.52</td>
<td>98.102.181.138</td>
<td>http://lostnfound.org</td>
<td>5:51</td>
<td>1993/7/22</td>
<td>22/7/1993</td>
</tr>
<tr>
<td>carl@fish.org</td>
<td>73392</td>
<td>941-964-5792</td>
<td>$3876.04</td>
<td>246.234.182.243</td>
<td>http://www.google.se</td>
<td>6:52</td>
<td>1984/7/14</td>
<td>14/7/1984</td>
</tr>
<tr>
<td>found@mountdev.net</td>
<td>03519</td>
<td>941-964-1599</td>
<td>$1176.48</td>
<td>104.212.122.177</td>
<td>http://donuts.com</td>
<td>18:52</td>
<td>2000/8/6</td>
<td>6/8/2000</td>
</tr>
<tr>
<td>lost@fish.org</td>
<td>36628</td>
<td>941-964-5975</td>
<td>$822.23</td>
<td>153.63.68.208</td>
<td>http://www.gmail.com</td>
<td>7:53</td>
<td>1994/7/14</td>
<td>14/7/1994</td>
</tr>
<tr>
<td>mendez@dotnet.ca</td>
<td>90442</td>
<td>941-964-1649</td>
<td>$1975.72</td>
<td>128.161.95.170</td>
<td>http://reno.gov</td>
<td>8:35</td>
<td>1997/10/20</td>
<td>20/10/1997</td>
</tr>
<tr>
<td>carl@donuts.com</td>
<td>00412</td>
<td>941-964-6432</td>
<td>$1834.77</td>
<td>141.231.126.192</td>
<td>http://gmail.com</td>
<td>16:15</td>
<td>1997/8/23</td>
<td>23/8/1997</td>
</tr>
<tr>
<td>foo@fish.org</td>
<td>80653</td>
<td>941-964-1022</td>
<td>$260.26</td>
<td>98.102.97.81</td>
<td>http://samba.org</td>
<td>8:27</td>
<td>1991/11/24</td>
<td>24/11/1991</td>
</tr>
<tr>
<td>found@fish.org</td>
<td>54635</td>
<td>941-964-6439</td>
<td>$1442.80</td>
<td>108.133.231.154</td>
<td>http://dotnet.ca</td>
<td>6:47</td>
<td>1977/7/12</td>
<td>12/7/1977</td>
</tr>
<tr>
<td>found@flexomat.com</td>
<td>20953</td>
<td>941-964-5544</td>
<td>$575.42</td>
<td>247.246.235.138</td>
<td>http://gmail.com</td>
<td>3:12</td>
<td>1978/6/10</td>
<td>10/6/1978</td>
</tr>
<tr>
<td>lost@aftonbladet.se</td>
<td>60810</td>
<td>941-964-8406</td>
<td>$1054.39</td>
<td>130.80.125.154</td>
<td>http://www.samba.org</td>
<td>15:50</td>
<td>1978/5/18</td>
<td>18/5/1978</td>
</tr>
<tr>
<td>carl@reno.gov</td>
<td>22666</td>
<td>941-964-104</td>
<td>$373.59</td>
<td>185.150.127.115</td>
<td>http://www.lostnfound.org</td>
<td>10:11</td>
<td>1971/11/5</td>
<td>5/11/1971</td>
</tr>
<tr>
<td>carl@donuts.com</td>
<td>82867</td>
<td>941-964-1031</td>
<td>$631.03</td>
<td>62.244.222.152</td>
<td>http://www.reno.gov</td>
<td>11:24</td>
<td>1985/1/22</td>
<td>22/1/1985</td>
</tr>
<tr>
<td>foo@donuts.com</td>
<td>11268</td>
<td>941-964-208</td>
<td>$3730.64</td>
<td>234.192.138.252</td>
<td>http://aftonbladet.se</td>
<td>22:45</td>
<td>1979/8/4</td>
<td>4/8/1979</td>
</tr>
<tr>
<td>devo@google.se</td>
<td>17059</td>
<td>941-964-2903</td>
<td>$1404.67</td>
<td>73.189.246.202</td>
<td>http://www.gmail.com</td>
<td>22:28</td>
<td>1983/4/28</td>
<td>28/4/1983</td>
</tr>
<tr>
<td>muffins@flexomat.com</td>
<td>90584</td>
<td>941-964-4640</td>
<td>$3706.01</td>
<td>243.162.73.115</td>
<td>http://www.fish.org</td>
<td>11:12</td>
<td>1997/4/8</td>
<td>8/4/1997</td>
</tr>
<tr>
<td>foo@samba.org</td>
<td>82966</td>
<td>941-964-7245</td>
<td>$1001.38</td>
<td>255.182.148.252</td>
<td>http://www.reno.gov</td>
<td>8:42</td>
<td>1995/11/1</td>
<td>1/11/1995</td>
</tr>
<tr>
<td>foo@reno.gov</td>
<td>03603</td>
<td>941-964-8942</td>
<td>$1677.07</td>
<td>176.96.162.192</td>
<td>http://www.flexomat.com</td>
<td>19:11</td>
<td>1980/7/31</td>
<td>31/7/1980</td>
</tr>
<tr>
<td>found@flexomat.com</td>
<td>84939</td>
<td>941-964-7004</td>
<td>$3916.83</td>
<td>240.145.198.78</td>
<td>http://www.fish.org</td>
<td>1:29</td>
<td>1980/8/26</td>
<td>26/8/1980</td>
</tr>
<tr>
<td>henry@lostnfound.org</td>
<td>76453</td>
<td>941-964-3084</td>
<td>$3875.88</td>
<td>235.225.168.168</td>
<td>http://www.fish.org</td>
<td>15:31</td>
<td>2000/10/22</td>
<td>22/10/2000</td>
</tr>
<tr>
<td>sam@aftonbladet.se</td>
<td>36274</td>
<td>941-964-7784</td>
<td>$73.43</td>
<td>114.190.194.148</td>
<td>http://www.dn.se</td>
<td>18:24</td>
<td>1994/11/11</td>
<td>11/11/1994</td>
</tr>
<tr>
<td>dev@polyester.se</td>
<td>15971</td>
<td>941-964-7527</td>
<td>$1855.18</td>
<td>179.121.143.189</td>
<td>http://www.flexomat.com</td>
<td>10:25</td>
<td>1984/8/16</td>
<td>16/8/1984</td>
</tr>
<tr>
<td>devo@fish.org</td>
<td>31734</td>
<td>941-964-9760</td>
<td>$3201.35</td>
<td>213.186.220.205</td>
<td>http://www.samba.org</td>
<td>19:37</td>
<td>1979/3/4</td>
<td>4/3/1979</td>
</tr>
<tr>
<td>devo@reno.gov</td>
<td>52074</td>
<td>941-964-2068</td>
<td>$3035.24</td>
<td>189.62.225.163</td>
<td>http://www.dn.se</td>
<td>21:18</td>
<td>1998/2/24</td>
<td>24/2/1998</td>
</tr>
<tr>
<td>mendez@fish.org</td>
<td>87800</td>
<td>941-964-7933</td>
<td>$618.59</td>
<td>254.119.153.91</td>
<td>http://www.dn.se</td>
<td>22:34</td>
<td>1979/5/28</td>
<td>28/5/1979</td>
</tr>
<tr>
<td>muffins@reno.gov</td>
<td>95926</td>
<td>941-964-147</td>
<td>$3897.91</td>
<td>105.85.121.209</td>
<td>http://www.flexomat.com</td>
<td>9:50</td>
<td>2003/4/1</td>
<td>1/4/2003</td>
</tr>
<tr>
<td>carl@donuts.com</td>
<td>74513</td>
<td>941-964-4507</td>
<td>$2150.68</td>
<td>106.175.123.125</td>
<td>http://www.fish.org</td>
<td>21:42</td>
<td>1977/4/8</td>
<td>8/4/1977</td>
</tr>
<tr>
<td>sam@fish.org</td>
<td>82420</td>
<td>941-964-2134</td>
<td>$3947.54</td>
<td>129.78.102.122</td>
<td>http://mountdev.net</td>
<td>11:33</td>
<td>1990/11/26</td>
<td>26/11/1990</td>
</tr>
<tr>
<td>devo@mountdev.net</td>
<td>81905</td>
<td>941-964-3535</td>
<td>$722.17</td>
<td>229.101.84.111</td>
<td>http://fish.org</td>
<td>7:29</td>
<td>1975/12/28</td>
<td>28/12/1975</td>
</tr>
<tr>
<td>john@lostnfound.org</td>
<td>93124</td>
<td>941-964-1508</td>
<td>$394.82</td>
<td>61.184.235.77</td>
<td>http://www.mountdev.net</td>
<td>14:38</td>
<td>1979/12/10</td>
<td>10/12/1979</td>
</tr>
</tbody>
</table>
package com.itcast.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
public class ConnectionUtil {
public Connection openConnection() {
String driver = "";
String url = "";
String user = "";
String password = "";
Properties prop = new Properties();
Connection conn = null;
try {
//加蝲属性文?nbsp;
prop.load(this.getClass().getClassLoader().getResourceAsStream(
"DBConfig.properties"));
driver = prop.getProperty("driver");
url = prop.getProperty("url");
user = prop.getProperty("user");
password = prop.getProperty("password");
//Class.forName加蝲驱动
Class.forName(driver);
//DriverManager获得q接
conn = DriverManager.getConnection(url, user, password);
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
3.业务实现c?br />
package com.itcast.service.impl;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.itcast.db.ConnectionUtil;
import com.itcast.db.DBConnection;
import com.itcast.model.User;
import com.itcast.service.IUser;
/**
* 业务逻辑处理
*
* @author Administrator
*
*/
public class UserImpl implements IUser {
// DBConnection db = new DBConnection();
private PreparedStatement pstm;
/**
* d用户
*/
public void add_User(User user) {
try{
// Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
// conn= DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=school", "sa", "sa");
Connection conn = new ConnectionUtil().openConnection();
pstm=conn.prepareStatement("insert into userTable(user_name , user_password ,user_age,user_sex,user_address,user_telephone) values(?,?,?,?,?,?)");
pstm.setString(1, user.getUsername());
pstm.setString(2, user.getPassword());
pstm.setInt(3, user.getAge());
pstm.setString(4, user.getSex());
pstm.setString(5, user.getAddress());
pstm.setString(6, user.getTelephone());
pstm.executeUpdate();
}catch(SQLException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
// String sql="insert into userTable(user_name , user_password ,user_age,user_sex,user_address,user_telephone) values(?,?,?,?,?,?)";
//
// db.GetConnection();
}
/**
* 删除用户
*/
public boolean del_User(int id) {
boolean result=false;
try{
Connection conn = new ConnectionUtil().openConnection();
pstm=conn.prepareStatement("delete from userTable where user_id="+id);
pstm.executeUpdate();
result=true;
}catch(SQLException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
return result;
}
/**
* 查找用户
*/
public List<User> find_User() {
Connection conn = new ConnectionUtil().openConnection();
List<User> list = new ArrayList();
User user = new User();
String sql = "select * from userTable ";
try {
pstm=conn.prepareStatement(sql);
// pstm.setInt(1, id);
ResultSet rs=pstm.executeQuery();
while (rs.next()) {
user.setId(rs.getInt(1));
user.setUsername(rs.getString(2));
user.setPassword(rs.getString(3));
user.setAge(rs.getInt(4));
user.setSex(rs.getString(5));
user.setAddress(rs.getString(6));
user.setTelephone(rs.getString(7));
user.setTime(rs.getDate(8));
// System.out.println(rs.getString(7));
list.add(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
/**
* 按照id查询用户信息
*/
public List find_Users(int id) {
Connection conn = new ConnectionUtil().openConnection();
List list = new ArrayList();
User user = new User();
String sql = "select * from userTable where user_id=?";
try {
pstm=conn.prepareStatement(sql);
pstm.setInt(1, id);
ResultSet rs=pstm.executeQuery();
while (rs.next()) {
user.setId(rs.getInt(1));
user.setUsername(rs.getString(2));
user.setPassword(rs.getString(3));
user.setAge(rs.getInt(4));
user.setSex(rs.getString(5));
user.setAddress(rs.getString(6));
user.setTelephone(rs.getString(7));
user.setTime(rs.getDate(8));
// System.out.println(rs.getString(7));
list.add(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
/**
* 修改用户信息
*/
public IUser modify_User() {
// TODO Auto-generated method stub
return null;
}
}
一、下载SQL SERVER2000的jdbc驱动E序。在微Y站点有q个驱动E序Q?Window操作pȝ
http://download.microsoft.com/download/3/0/f/30ff65d3-a84b-4b8a-a570-27366b2271d8/setup.exe Unix操作pȝ
Mssqlserver.tar http://download.microsoft.com/download/3/0/f/30ff65d3-a84b-4b8a-a570-27366b2271d8/mssqlserver.tar
二、安装JDBC 执行ms_jdbc_setup.exe可执行文Ӟ一切只需要点M一
步,臛_出现finish按钮Q完成安装。注Q?(1) ms_JDBC_setup默认安装?br />
径ؓQc:\Program Files\Microsoft SQL Server 2000 Driver for JDBC (2)此版
(Version 2.2.0022)本仅支持Microsoft SQL Server 2000 Driver for JDBC (3)?br />
装目录\lib\下的三个jar文gx我们要的JDBC驱动核心 msbase.jar
mssqlserver.jar msutil.jar
三、将以上Q?Q中指的三个jar文g加入到环境变量中?classpathQ?br />
d:\webserver\lib\msbase.jar;d:\webserver\lib\mssqlserver.jar;d:\webserver\lib\msutil.jar
注:也可以省事的以上三个文件拷贝至你的jvm机所在的
JAVA_HOME\jre\lib\ext目录下,不过不徏议这么做?对于web目Q可
直接以上三个jar包拷贝到WEB-INF下的lib文g夹下卛_?/span>
四、测?jsp文gQ?
您的W一个字D内容ؓQ?br />
您的W二个字D内容ؓQ?/span>
五、注意事?1. 要保证你的Sql服务是启动状?2. 在Sql 的管理器中能?br />
使用sa或其它用h常登录;(有些人在安装sql时用了nt用户理模式Q?br />
q里可能会有一定问? 3. W一ơ配|好环境变量最好能重启一下电?
4. 注意JVM和DataBase的启动顺序:先启动DataBaseQ再启动JVM机?br />
注:在停止Web服务器后Q再重启动,中间最好能?0U以上的间隔?br />
5. 注意操作pȝ的网l连通?A.启动了Tcp/IP服务 B.配置了相关IP地址,
有些人机器可能用的是自动分配IP或有配置IPӞ但网l不通可能也找不
到IP 6. 有些机器在调试明最好能(四)中的q接地址localhostҎ数据
库服务器的IP,q也是要注意5的原因?/span>
package zmsjdbc;
import java.sql.*;
public class sqlserver1 {
private String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=catv"; //catv是数据库Qloacalhost可以用IP和主?
private String user="sa";
private String pwd="";
public Connection getcon() {
Connection con;
try { //加蝲驱动E序
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); //创徏q接 con=DriverManager.getConnection(url,user,pwd);
return con;
} catch(ClassNotFoundException e) {
System.out.println("加蝲驱动E序出错");
} catch(SQLException e) {
System.out.println(e.getMessage());
} catch(Exception e) {
System.out.println("出现了好大的错误");
}
return null;
}
public ResultSet executeSql(String sqlstr) {
Connection conn; Statement stmt;
try { conn=getcon();
stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sqlstr);
return rs;
} catch(SQLException e) {
System.out.print("获取数据集时出现错误");
}
return null;
}
public static void main(String[] args) {
ResultSet rs1;
sqlserver1 sql1=new sqlserver1();
rs1=sql1.executeSql("select ui_id,ui_name from userinfo");
try {
while(rs1.next()) {
System.out.println(rs1.getString("ui_id")+" 姓名:"+rs1.getString("ui_name"));
}
} catch(Exception e)
{
System.out.println(e.getMessage());
}
} } /*
1、对于SQLSERVER 必须下蝲 SQLSERVER驱动 http://download.microsoft.com/download/3/0/f/30ff65d3-a84b-4b8a-a570-27366b2271d8/setup.exe 然后?msbase.jar mssqlserver.jar msutil.jar 复制?D:\JBuilder9\jdk1.4\jre\lib\extQ或者放在web目的WEB-INF/lib下?
2Q如果出现错误: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket. 说明 SQLERVER 端口?不对 》》》更改端口号QSQLSERVER->属?常规-|络配置-常规-TCP/IP-属?-更改端口h个命令可以用Q?cmd-> netstat -a 例如QString url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=zmstv"; 说明你用的?433 在CMD ?输入 netstat -a -n 应该看不刎ͼTCP 127.0.0.1:1433 0.0.0.0:0 LISTENING 如果安装 sqlserver 2000 出现 报错 "以前的某个程序安装已在安装计机上创建挂L文g操作。。。? 打开注册表编辑器Q在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations目Qƈ删除它。这样就可以清除安装暂挂目?/span>
在J2MEE序开发过E中Qؓ了一定的需要,l常需要来获得用户的手机号码,但是q个功能却在标准的J2MEcd中没有提供?
在用中国移动的CMWAP方式q接|络Ӟ中国Ud会将用户的手机号码放在一个名UCؓx-up-calling-line-id的头信息中,可以通过d该头信息Q获得用L手机LQ具体代码如下:
String usermphone = http.getHeader("x-up-calling-line-id");
伪手机号Q用户在Ud梦网的IDQ?/font>
String usermphone = http.getHeader("MISC_MID");
其中http是HttpConnctioncd的对象?nbsp;
[color=Green]注意Q必要是CNWAP联网才行?[/color]
Enumeration headers = request.getHeaderNames() ;
while(headers.hasMoreElements())
{
String head = (String)headers.nextElement();
out.println(head+":"+request.getHeader(head));
}
q样可以将所有的信息打印出来Q看到号码的位置了。注意获取号码的前提是跟营运商有合作或者跟他们甌。同意给你送,否则E序实现了也没有用?/span>
本文来自CSDN博客Q{载请标明出处Qhttp://blog.csdn.net/jhjinhua/archive/2008/12/12/3505675.aspx