<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://miaomin.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fmiaomin.spaces.live.com%2fcategory%2fJavascript__xa5Ajax%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>苗苗 合作 交流: Javascript/Ajax</title><description /><link>http://miaomin.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=catJavascript__xa5Ajax</link><language>en-US</language><pubDate>Mon, 03 Sep 2007 03:40:18 GMT</pubDate><lastBuildDate>Mon, 03 Sep 2007 03:40:18 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://miaomin.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>-8913911617972053559</live:id><live:alias>miaomin</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>[Javascript] 网页表单的javascript集成验证方法举例</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!179.entry</link><description>&lt;div&gt;&lt;font face="Courier New" size=3&gt;作为一名Web设计人员、一名Coder，你是否已经厌倦了网页设计中的表单验证问&lt;br&gt;题？不厌其烦的拷贝 &lt;u&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;(x) { alert(&lt;font color="#ff1493"&gt;'wrong'&lt;/font&gt;);}&lt;/u&gt; ，还是使用一个难以尽和我意的&lt;br&gt;IDE ？好吧，让我来告诉你一种比较lazy的写法，你也许就不会对表单验证那么头大&lt;br&gt;了……&lt;br&gt;    原理：&lt;br&gt;           表单验证无非是要对要收集每一条信息进行验证，也就是要写一个名为&lt;br&gt;       frmValid的javascript函数，在其中执行如下操作：&lt;br&gt;             ...&lt;br&gt;             &lt;font color="#0000ff"&gt;if&lt;/font&gt; (待验证条目 不符合条件)&lt;br&gt;             {&lt;br&gt;                  alert(&lt;font color="#ff1493"&gt;'出错了!'&lt;/font&gt;);&lt;br&gt;                  待验证条目.focus();&lt;br&gt;                  &lt;font color="#0000ff"&gt;return false&lt;/font&gt;;&lt;br&gt;             }&lt;br&gt;             ...&lt;br&gt;             &lt;font color="#008000"&gt;// all right&lt;/font&gt;&lt;br&gt;             &lt;font color="#0000ff"&gt;return true&lt;/font&gt;;&lt;br&gt;           当然，&amp;lt;&lt;font color="#0000ff"&gt;form&lt;/font&gt; ... &lt;font color="#ff0000"&gt;onsubmit&lt;/font&gt;=&lt;font color="#ff1493"&gt;'return frmValid()'&lt;/font&gt;&amp;gt;必须包含在&lt;br&gt;       HTML代码中。想想看，待验证条目越多代码越长，也就越容易出错。&lt;br&gt;           下面我们把验证条目放到一个数组里，如下：&lt;br&gt;             elemArray = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#ff0000"&gt;Array&lt;/font&gt;(&lt;br&gt;                 &lt;font color="#ff1493"&gt;'待验证条目名'&lt;/font&gt;,&lt;br&gt;                 &lt;font color="#ff1493"&gt;'验证条件'&lt;/font&gt;,&lt;br&gt;                 &lt;font color="#ff1493"&gt;'出错提示'&lt;/font&gt;);&lt;br&gt;           那么验证代码将大大精简，我们只要如下使用循环就可实现上述冗长&lt;br&gt;       代码时下的功能，这里我们用&lt;font color="#0000ff"&gt;with&lt;/font&gt;和&lt;font color="#0000ff"&gt;eval&lt;/font&gt;语句构造判断条件：&lt;br&gt;&lt;font color="#0000ff"&gt;             with&lt;/font&gt;(eval(&lt;font color="#ff1493"&gt;'obj.'&lt;/font&gt;+elems[i][0]))&lt;br&gt;&lt;font color="#008000"&gt;    &lt;font color="#0000ff"&gt;     &lt;/font&gt;    &lt;/font&gt;{&lt;br&gt;&lt;font color="#008000"&gt;         &lt;font color="#0000ff"&gt;     &lt;/font&gt;   &lt;/font&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;(eval(elems[i][1]))&lt;br&gt;&lt;font color="#008000"&gt;           &lt;font color="#0000ff"&gt;     &lt;/font&gt; &lt;/font&gt;{&lt;br&gt;&lt;font color="#008000"&gt;               &lt;font color="#0000ff"&gt;     &lt;/font&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;window&lt;/font&gt;.alert(elems[i][2]);&lt;br&gt;    &lt;font color="#008000"&gt;            &lt;/font&gt;&lt;font color="#0000ff"&gt;     &lt;/font&gt;focus();&lt;br&gt;    &lt;font color="#008000"&gt;            &lt;/font&gt;&lt;font color="#0000ff"&gt;     return false&lt;/font&gt;;&lt;br&gt;&lt;font color="#008000"&gt;            &lt;/font&gt;&lt;font color="#0000ff"&gt;     &lt;/font&gt;}&lt;br&gt;&lt;font color="#008000"&gt;        &lt;/font&gt;&lt;font color="#0000ff"&gt;     &lt;/font&gt;}&lt;br&gt;           我们建立多位数组就可实现循环遍历每个条目：&lt;br&gt;             elems = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#ff0000"&gt;Array&lt;/font&gt;(&lt;br&gt;                 &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#ff0000"&gt;Arrary&lt;/font&gt;( ...),&lt;br&gt;                 ...&lt;br&gt;             );&lt;br&gt;             &lt;font color="#0000ff"&gt;for&lt;/font&gt;(i = 0; i &amp;lt; elems.length; i++)&lt;br&gt;             {&lt;br&gt;                 // 上面的验证语句&lt;br&gt;             }&lt;br&gt;&lt;br&gt;    &lt;br&gt;    实战：&lt;br&gt;        1、使用如下例子编写验证脚本：&lt;br&gt;&amp;lt;SCRIPT LANGUAGE=&lt;font color="#ff1493"&gt;&amp;quot;javascript&amp;quot;&lt;/font&gt; type=&lt;font color="#ff1493"&gt;&amp;quot;text/javascript&amp;quot;&lt;/font&gt;&amp;gt;&lt;br&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;font color="#008000"&gt;//&lt;br&gt;// Function: frmValid&lt;br&gt;// ------------------&lt;br&gt;// Author    hongz&lt;br&gt;// Usage:    YourForm.onsubmit=&amp;quot;return frmValid(this)&amp;quot;.&lt;br&gt;// Purpose:  To validate form elements in an integrated way.&lt;br&gt;//&lt;/font&gt;&lt;br&gt;&lt;font color="#0000ff"&gt;function&lt;/font&gt; frmValid(obj)&lt;br&gt;{&lt;br&gt;&lt;font color="#008000"&gt;    // Elements array, initialization for validation&lt;/font&gt;&lt;br&gt;&lt;font color="#008000"&gt;    &lt;/font&gt;elems = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#ff0000"&gt;Array&lt;/font&gt;(&lt;br&gt;&lt;font color="#008000"&gt;        &lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#ff0000"&gt;Array&lt;/font&gt;(&lt;br&gt;&lt;font color="#008000"&gt;            &lt;/font&gt;&lt;font color="#ff1493"&gt;'username'&lt;/font&gt;,  &lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size=3&gt;&lt;font color="#008000"&gt;// name of elements to be validated&lt;br&gt;            &lt;/font&gt;&lt;font color="#ff1493"&gt;'value.length&amp;lt;1 || value.search(/[^a-zA-z0-9_]/)&amp;gt;=0'&lt;/font&gt;, &lt;br&gt;&lt;font color="#008000"&gt;                         &lt;/font&gt;&lt;font color="#008000"&gt;// validation condition&lt;/font&gt;&lt;br&gt;&lt;font color="#008000"&gt;            &lt;/font&gt;&lt;font color="#ff1493"&gt;'无效的用户名:只能输入6-20位字母、数字、下划线的组合!'&lt;/font&gt;),&lt;br&gt;                         &lt;font color="#008000"&gt;// prompt on failure&lt;/font&gt;&lt;br&gt;&lt;font color="#008000"&gt;        &lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#ff0000"&gt;Array&lt;/font&gt;(&lt;br&gt;&lt;font color="#008000"&gt;            &lt;/font&gt;&lt;font color="#ff1493"&gt;'password'&lt;/font&gt;, &lt;br&gt;&lt;font color="#008000"&gt;            &lt;/font&gt;&lt;font color="#ff1493"&gt;'value.length&amp;lt;5 || value.search(/[^a-zA-z0-9_]/)&amp;gt;=0'&lt;/font&gt;, &lt;br&gt;&lt;font color="#008000"&gt;            &lt;/font&gt;&lt;font color="#ff1493"&gt;'无效的密码:只能输入6-20位字母、数字、下划线的组合!'&lt;/font&gt;),&lt;br&gt;&lt;font color="#008000"&gt;        &lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#ff0000"&gt;Array&lt;/font&gt;(&lt;br&gt;&lt;font color="#008000"&gt;            &lt;/font&gt;&lt;font color="#ff1493"&gt;'email'&lt;/font&gt;, &lt;br&gt;&lt;font color="#008000"&gt;            &lt;/font&gt;&lt;font color="#ff1493"&gt;'isMail(value)==false'&lt;/font&gt;, &lt;br&gt;&lt;font color="#008000"&gt;            &lt;/font&gt;&lt;font color="#ff1493"&gt;'Email是您在网上的重要联络工具,请务必正确填写!'&lt;/font&gt;)&lt;br&gt;&lt;font color="#008000"&gt;    &lt;/font&gt;);&lt;br&gt;&lt;br&gt;&lt;font color="#008000"&gt;    &lt;/font&gt;&lt;font color="#008000"&gt;// Validate here, using eval statement.&lt;/font&gt;&lt;br&gt;&lt;font color="#008000"&gt;    &lt;/font&gt;&lt;font color="#0000ff"&gt;for&lt;/font&gt;(i = 0; i &amp;lt; elems.length; i++)&lt;br&gt;&lt;font color="#008000"&gt;    &lt;/font&gt;{&lt;br&gt;&lt;font color="#008000"&gt;        &lt;/font&gt;&lt;font color="#0000ff"&gt;with&lt;/font&gt;(eval(&lt;font color="#ff1493"&gt;'obj.'&lt;/font&gt;+elems[i][0]))&lt;br&gt;&lt;font color="#008000"&gt;        &lt;/font&gt;{&lt;br&gt;&lt;font color="#008000"&gt;            &lt;/font&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;(eval(elems[i][1]))&lt;br&gt;&lt;font color="#008000"&gt;            &lt;/font&gt;{&lt;br&gt;&lt;font color="#008000"&gt;                &lt;/font&gt;&lt;font color="#ff0000"&gt;window&lt;/font&gt;.alert(elems[i][2]);&lt;br&gt;    &lt;font color="#008000"&gt;            &lt;/font&gt;focus();&lt;br&gt;    &lt;font color="#008000"&gt;            &lt;/font&gt;&lt;font color="#0000ff"&gt;return false&lt;/font&gt;;&lt;br&gt;&lt;font color="#008000"&gt;            &lt;/font&gt;}&lt;br&gt;&lt;font color="#008000"&gt;        &lt;/font&gt;}&lt;br&gt;&lt;font color="#008000"&gt;    &lt;/font&gt;}&lt;br&gt;&lt;font color="#008000"&gt;    &lt;/font&gt;&lt;font color="#0000ff"&gt;return true&lt;/font&gt;;&lt;br&gt;}&lt;br&gt;&lt;font color="#008000"&gt;//--&amp;gt;&lt;/font&gt;&lt;br&gt;&amp;lt;/SCRIPT&amp;gt;&lt;br&gt;        2、为form添加onsubmit属性：&lt;br&gt;           &amp;lt;&lt;font color="#0000ff"&gt;form&lt;/font&gt; ... &lt;font color="#ff0000"&gt;onsubmit&lt;/font&gt;=&lt;font color="#ff1493"&gt;'return frmValid(this)'&lt;/font&gt;&amp;gt;&lt;br&gt;&lt;br&gt;    如果你感觉我的方法还行的话，那我欢迎你使用，呵呵……&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%5bJavascript%5d+%e7%bd%91%e9%a1%b5%e8%a1%a8%e5%8d%95%e7%9a%84javascript%e9%9b%86%e6%88%90%e9%aa%8c%e8%af%81%e6%96%b9%e6%b3%95%e4%b8%be%e4%be%8b&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!179.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!179.entry</guid><pubDate>Fri, 09 Dec 2005 08:16:42 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!179/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!179.entry#comment</wfw:comment><dcterms:modified>2005-12-09T08:16:42Z</dcterms:modified></item><item><title>[Ajax] 实现一个基于Ajax的调查程序</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!127.entry</link><description>&lt;div&gt;
&lt;p&gt;&lt;font size=3&gt;&amp;lt;html&amp;gt;&lt;br&gt;&amp;lt;head&amp;gt;&lt;br&gt;&amp;lt;title&amp;gt;投票&amp;lt;/title&amp;gt;&lt;br&gt;&amp;lt;META http-equiv=Content-Language content=zh-cn&amp;gt;&lt;br&gt;&amp;lt;META http-equiv=Content-Type content=&amp;quot;text/html; charset=gb2312&amp;quot;&amp;gt;&lt;br&gt;&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br&gt;&amp;lt;!--&lt;br&gt;.poll {font-size: 10pt;display:block}&lt;br&gt;.pollresult {font-size: 12pt;display:none}&lt;br&gt;--&amp;gt;&lt;br&gt;&amp;lt;/style&amp;gt;&lt;br&gt;&amp;lt;?php&lt;br&gt; include_once(&amp;quot;server1.server.php&amp;quot;); #servidor para XAJAX&lt;br&gt; $xajax-&amp;gt;printJavascript();&lt;br&gt;?&amp;gt;&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;&amp;lt;/head&amp;gt;&lt;br&gt;&amp;lt;body&amp;gt;&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;&amp;lt;script language=javascript&amp;gt;&lt;br&gt;    function back() { &lt;br&gt;      document.getElementById('poll').style.display = 'block';&lt;br&gt;      document.getElementById('pollresult').style.display = 'none';&lt;br&gt;      document.getElementById('pollresult').innerHTML = '';&lt;br&gt;    } &lt;br&gt;&amp;lt;/script&amp;gt;  &lt;br&gt;&amp;lt;div id=pollresult class=pollresult&amp;gt;&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;&amp;lt;/div&amp;gt;&lt;/font&gt;
&lt;p&gt;&lt;br&gt;&lt;font size=3&gt;&amp;lt;?php&lt;/font&gt;
&lt;p&gt;&lt;br&gt;&lt;font size=3&gt;global $db;&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;$poll = $db-&amp;gt;getRow(&amp;quot;select * from TBL_POLL order by poll_id desc limit 1&amp;quot;);&lt;br&gt;$poll_id = $poll[&amp;quot;poll_id&amp;quot;];&lt;br&gt;$pollitems = $db-&amp;gt;getAll(&amp;quot;select * from TBL_POLLITEM where poll_id=$poll_id&amp;quot;);&lt;br&gt;?&amp;gt;&lt;br&gt;&amp;lt;div id=poll class=poll&amp;gt;&lt;br&gt;&amp;lt;form id=&amp;quot;pollForm&amp;quot; action=&amp;quot;javascript:void(null);&amp;quot; onsubmit=&amp;quot;onSubmit();&amp;quot;&amp;gt; &lt;br&gt;   &amp;lt;?php echo $poll[&amp;quot;title&amp;quot;]; ?&amp;gt;&amp;lt;br&amp;gt;&lt;br&gt;   &amp;lt;?php for ($i = 0, $count = count($pollitems); $i &amp;lt; $count; $i++) { ?&amp;gt;&lt;br&gt;  &amp;lt;input type=&amp;quot;radio&amp;quot; style=&amp;quot;background-color : #CCCCCC;&amp;quot; name=&amp;quot;pollitem&amp;quot; value=&amp;quot;&amp;lt;?php echo $pollitems[$i]['pollitem_id'] ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;?php echo $pollitems[$i]['content'] ?&amp;gt;&amp;lt;br&amp;gt;&lt;br&gt;  &amp;lt;?php } ?&amp;gt; &lt;br&gt;  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;poll_id&amp;quot; value=&amp;quot;&amp;lt;?php echo $poll_id; ?&amp;gt;&amp;quot;&amp;gt;&lt;br&gt;  &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;enter&amp;quot;&amp;gt;&lt;br&gt;&amp;lt;/form&amp;gt; &lt;br&gt;&amp;lt;script language=javascript&amp;gt;&lt;br&gt;    function onSubmit() { &lt;br&gt;      xajax_poll(xajax.getFormValues(&amp;quot;pollForm&amp;quot;)); &lt;br&gt;      document.getElementById('poll').style.display = 'none';&lt;br&gt;      document.getElementById('pollresult').style.display = 'block';&lt;br&gt;    } &lt;br&gt;&amp;lt;/script&amp;gt; &lt;br&gt;&amp;lt;/div&amp;gt;&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;&amp;lt;/body&amp;gt;&lt;br&gt;&amp;lt;/html&amp;gt; &lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;服务器端&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;function poll($formData){&lt;br&gt;  global $db;&lt;br&gt;  $tmp=&amp;quot;&amp;quot;;&lt;br&gt;  $objResponse = new xajaxResponse();&lt;br&gt;  &lt;br&gt;  $poll_id = $formData['poll_id'];&lt;br&gt;  $pollitem_id = $formData['pollitem'];&lt;br&gt;  &lt;br&gt;  if($pollitem_id &amp;gt; 0 &amp;amp;&amp;amp; $poll_id &amp;gt; 0) { &lt;br&gt;   $db-&amp;gt;query(&amp;quot;update &amp;quot;.TBL_POLLITEM.&amp;quot; set count=count+1 where pollitem_id = $pollitem_id&amp;quot;);                  &lt;br&gt;  }&lt;br&gt;  &lt;br&gt;  $poll = $db-&amp;gt;getRow(&amp;quot;select * from TBL_POLL where poll_id = $poll_id&amp;quot;);&lt;br&gt;  $pollitems = $db-&amp;gt;getAll(&amp;quot;select * from TBL_POLLITEM where poll_id=$poll_id&amp;quot;);&lt;br&gt;  &lt;br&gt;  &lt;br&gt;  $tmp .=&amp;quot;&amp;lt;div align=center&amp;gt;&amp;quot;.$poll[&amp;quot;title&amp;quot;].&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;quot;;&lt;br&gt;    for ($i = 0, $count = count($pollitems); $i &amp;lt; $count; $i++) {&lt;br&gt;      $tmp .=&amp;quot;&amp;lt;div align=left&amp;gt;&amp;quot;.$pollitems[$i]['content'].&amp;quot;: &amp;quot;.$pollitems[$i]['count'].&amp;quot;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br&gt;    }&lt;br&gt;  $tmp .=&amp;quot;&amp;lt;div align=center&amp;gt;&amp;quot;.&amp;quot;&amp;lt;input type=\&amp;quot;button\&amp;quot;  value=\&amp;quot;返回\&amp;quot; onclick=\&amp;quot;back();\&amp;quot;&amp;gt;&amp;quot;.&amp;quot;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br&gt;  &lt;br&gt;  $objResponse-&amp;gt;addAssign(&amp;quot;pollresult&amp;quot;,&amp;quot;innerHTML&amp;quot;,$tmp);&lt;br&gt;  return $objResponse-&amp;gt;getXML();&lt;br&gt;}&lt;br&gt;&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;数据库的表如下&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;CREATE TABLE TBL_POLL (&lt;br&gt;  poll_id int(11) unsigned NOT NULL default '0',&lt;br&gt;  title varchar(100) NOT NULL default '',&lt;br&gt;  created_date bigint(20) unsigned NOT NULL default '0',&lt;br&gt;  user_id int(11) unsigned NOT NULL default '0',&lt;br&gt;  PRIMARY KEY  (poll_id)&lt;br&gt;) TYPE=MyISAM;&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;CREATE TABLE TBL_POLLITEM (&lt;br&gt;  pollitem_id int(11) unsigned NOT NULL default '0',&lt;br&gt;  poll_id int(11) unsigned NOT NULL default '0',&lt;br&gt;  content varchar(100) NOT NULL default '',&lt;br&gt;  count int(11) unsigned NOT NULL default '0',&lt;br&gt;  PRIMARY KEY  (pollitem_id)&lt;br&gt;) TYPE=MyISAM;&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;这个例子中，调查的选项只在页面装载时读出，投票后在原地显示最新的投票信息。不需要弹出窗口&lt;/font&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%5bAjax%5d+%e5%ae%9e%e7%8e%b0%e4%b8%80%e4%b8%aa%e5%9f%ba%e4%ba%8eAjax%e7%9a%84%e8%b0%83%e6%9f%a5%e7%a8%8b%e5%ba%8f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!127.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!127.entry</guid><pubDate>Wed, 23 Nov 2005 02:51:40 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!127/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!127.entry#comment</wfw:comment><dcterms:modified>2005-12-07T04:37:07Z</dcterms:modified></item><item><title>[Ajax] pop窗体显示动态内容的js脚本</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!121.entry</link><description>&lt;div&gt;
&lt;p&gt;&lt;font size=3&gt;今天在微软上看到这个，感觉不错，偷过来咯！ （： &lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;如果再用XMLHTTP传值，就灵活多了。&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br&gt;var oPopup = window.createPopup();&lt;br&gt;function HelpPopup()&lt;br&gt;{&lt;br&gt;   if(&amp;quot;False&amp;quot; == &amp;quot;False&amp;quot;)&lt;br&gt;   {&lt;br&gt;      var iX = window.event.x;&lt;br&gt;      var iY = window.event.y;&lt;br&gt;      var sMenuText = &amp;quot;&amp;quot;;&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;      sMenuText = &amp;quot;&amp;lt;b&amp;gt;100:&amp;lt;/b&amp;gt; 介绍性的、概括性资料的技术等级。假设对主题或所谈及的主题概念、功能、特性和优点有很少了解或不是十分了解。&amp;lt;p /&amp;gt;&amp;lt;b&amp;gt;200:&amp;lt;/b&amp;gt; 中间层次资料的技术等级。假设具有100级的知识并有该主题的特定培训和学习。&amp;lt;p /&amp;gt;&amp;lt;b&amp;gt;300:&amp;lt;/b&amp;gt; 高级资料的技术等级。假设具有200级的知识并且具有对真实应用环境特性的深刻了解和很熟练的编码技巧。提供对产品/技术特性的子集的详细技术概览，包括体系结构、性能、移植、部署和开发。&amp;lt;p /&amp;gt;&amp;lt;b&amp;gt;400:&amp;lt;/b&amp;gt; 专家级资料的技术等级。假设具有深层次的技术知识和经验，并且具有对主题的详细和全面的理解。提供专家到专家的互动和对特定主题的覆盖。&amp;lt;p /&amp;gt;&amp;quot;;&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;      var oPopupBody = oPopup.document.body;&lt;br&gt;         oPopupBody.style.padding = &amp;quot;4px&amp;quot;;&lt;br&gt;         oPopupBody.style.backgroundColor = &amp;quot;infobackground&amp;quot;;&lt;br&gt;         oPopupBody.style.color = &amp;quot;infotext&amp;quot;;&lt;br&gt;         oPopupBody.style.borderTop = &amp;quot;2px solid threedshadow&amp;quot;;&lt;br&gt;         oPopupBody.style.borderLeft = &amp;quot;2px solid threedshadow&amp;quot;;&lt;br&gt;         oPopupBody.style.borderBottom = &amp;quot;2px solid threeddarkshadow&amp;quot;;&lt;br&gt;         oPopupBody.style.borderRight = &amp;quot;2px solid threeddarkshadow&amp;quot;;&lt;br&gt;         oPopupBody.style.fontFamily = &amp;quot;Tahoma&amp;quot;;&lt;br&gt;         oPopupBody.style.fontSize = &amp;quot;12px&amp;quot;;&lt;br&gt;         oPopupBody.innerHTML = sMenuText;&lt;br&gt;         oPopupBody.onclick = doClick;&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;      oPopup.show(iX, iY,400, 240, document.body);&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;   }&lt;br&gt;}&lt;br&gt;function doClick() &lt;br&gt;{&lt;br&gt;   oPopup.hide();&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;}  //end doClick&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;&amp;lt;/script&amp;gt;&lt;br&gt;&amp;lt;tr&amp;gt;&lt;br&gt;&amp;lt;td&amp;gt;&lt;br&gt;&amp;lt;/td&amp;gt;&amp;lt;img id=&amp;quot;TechLevelHelpImage&amp;quot; onclick=&amp;quot;HelpPopup()&amp;quot; onmouseover=&amp;quot;this.style.cursor='hand'&amp;quot; src=&amp;quot;dq.gif&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;border-width:0px;padding-top:3px;&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br&gt;&amp;lt;/tr&amp;gt;&lt;/font&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%5bAjax%5d+pop%e7%aa%97%e4%bd%93%e6%98%be%e7%a4%ba%e5%8a%a8%e6%80%81%e5%86%85%e5%ae%b9%e7%9a%84js%e8%84%9a%e6%9c%ac&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!121.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!121.entry</guid><pubDate>Tue, 22 Nov 2005 07:12:46 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!121/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!121.entry#comment</wfw:comment><dcterms:modified>2005-12-07T04:37:30Z</dcterms:modified></item><item><title>[Ajax] Ajax 学习笔记(1)</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!120.entry</link><description>&lt;div&gt;&lt;font face=Verdana size=3&gt;Ajax为Asynchronous JavaScript+XML的缩写，用于不刷新页面与服务器数据交流。&lt;br&gt;主要有微软的XMLHTTP对象和针对其它浏览器的XMLHTTPRequest对象。&lt;br&gt;&lt;br&gt;XMLHTTP对象的创建方法：&lt;br&gt;var myxml = new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;);&lt;br&gt;或 var myxml = new ActiveXObject(&amp;quot;Msxml2.XMLHTTP.3.0&amp;quot;);//IE5.0以上版本。&lt;br&gt;或 var myxml = new ActiveXObject(&amp;quot;Msxml2.XMLHTTP.4.0&amp;quot;);//客户端安装了MSXML4.0组件。&lt;br&gt;&lt;br&gt;其它浏览器XMLHTTPRequest对象的创建方法：&lt;br&gt;var myxml = new XMLHttpRequest();&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;a href="http://kokey.blogchina.com/2201728.html" target="_blank"&gt;&lt;u&gt;&lt;font face=Verdana color="#800080" size=3&gt;http://kokey.blogchina.com/2201728.html&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;font size=3&gt;&lt;font face=Verdana&gt;提供了一种方法用于创建通用的XMLHTTPRequest对象：&lt;br&gt;&lt;br&gt;if (window.ActiveXObject &amp;amp;&amp;amp; !window.XMLHttpRequest) {&lt;br&gt;window.XMLHttpRequest = function() {&lt;br&gt;return new ActiveXObject((navigator.userAgent.toLowerCase().indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP.3.0');&lt;br&gt;};&lt;br&gt;}&lt;br&gt;var myxml = new XMLHttpRequest();&lt;br&gt;&lt;br&gt;这种方法很高明，不过没必要非得建立成Msxml2.XMLHTTP对象，统一建立成Microsoft.XMLHTTP对象就行了，就象下面这样：&lt;br&gt;&lt;br&gt;If(window.ActiveXObject &amp;amp;&amp;amp; !window.XMLHttpRequest){&lt;br&gt;window.XMLHttpRequest = function(){&lt;br&gt;reutrn new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;);&lt;br&gt;}&lt;br&gt;}&lt;br&gt;var myxml = new XMLHttpRequest();&lt;br&gt;&lt;br&gt;&lt;br&gt;该对象较为重要的方法主要有：&lt;br&gt;&lt;br&gt;open(string method,string URL,[boolean asyn/syn],[string username],[string password]);&lt;br&gt;打开服务器文件。&lt;br&gt;参数分别为：&lt;br&gt;method:字段串类型，必须为&amp;quot;GET&amp;quot;或&amp;quot;POST&amp;quot;，注意要大写。&lt;br&gt;URL:字段串类型，接受提交的参数并返回结果的文件地址，可以是html（不处理参数）、xml（不处理参数）、ASP、PHP、CGI、.NET程序等。如果用GET方法提交参数，还需要用?parm1=value1&amp;amp;…的形式，将参数/值对提交给服务器程序。&lt;br&gt;a/s:布尔类型，确定请求是异步（true）还是同步（false），默认为true。&lt;br&gt;username:字符串类型，向要求验证的网站提交用户名。&lt;br&gt;Password:字符串类型，向要求验证的网站提交密码。&lt;br&gt;&lt;br&gt;send(string p/s对);&lt;br&gt;向服务器提交数据并接收返回结果。&lt;br&gt;传递的参数为 变量名/值对，只有当提交方法为POST时，才需要使用该参数。形式为&amp;quot;变量名=值&amp;amp;…&amp;quot;。&lt;br&gt;&lt;br&gt;setRequestHeader(string label, string value);&lt;br&gt;设置http header。&lt;br&gt;参数：&lt;br&gt;label:字段串，header类型。&lt;br&gt;value:字符串，header 值。&lt;br&gt;当使用POST方法提交参数时，必须在调用send方法前调用带有如下参数的setRequestHeader方法：&lt;br&gt;myxml.setRequestHeader(&amp;quot;Content-Type&amp;quot;,&amp;quot; 'application/x-www-form-urlencoded&amp;quot;);&lt;br&gt;&lt;br&gt;其它方法还有：&lt;br&gt;abort() 停止当前请求。&lt;br&gt;getAllResponseHeaders() 作为字符串返问完整的headers。&lt;br&gt;getResponseHeader(&amp;quot;headerLabel&amp;quot;) 作为字符串返问单个header标签的值。&lt;br&gt;&lt;br&gt;&lt;br&gt;该对象的属性主要有：&lt;br&gt;&lt;br&gt;readyState：&lt;br&gt;对象的不同状态，分别有如下五个值：&lt;br&gt;0：UNINITIALIZED，XMLHTTP对象已经创建，但还没有初始化（open方法还没有调用）。&lt;br&gt;1：LOADING，XMLHTTP对象已经创建，但send方法还没有调用。&lt;br&gt;2：LOADED，send方法已经调用，，并且状态值和响应头信息都可以得到，但是还没有返回response信息。&lt;br&gt;3：INTERACTIVE，部分数据已经返回，可以通过responseBody和responseText得到部分数据。&lt;br&gt;4：COMPLETED，所有的数据都已经返回。&lt;br&gt;&lt;br&gt;responseText：服务器进程返回数据的文本版本 &lt;br&gt;&lt;br&gt;responseXML：服务器进程返回数据的兼容DOM的XML文档对象 &lt;br&gt;&lt;br&gt;responseBody：服务器返回的主题（非文本格式）&lt;br&gt;&lt;br&gt;responseStream：服务器返回的数据流&lt;br&gt;&lt;br&gt;status：服务器返回的状态码, 如：404 = &amp;quot;文件末找到&amp;quot; 、200 =&amp;quot;成功&amp;quot; &lt;br&gt;&lt;br&gt;statusText：服务器返回的状态文本信息&lt;br&gt;&lt;br&gt;&lt;br&gt;还有一个触发器属性（好象在HTML叫事件来着）：&lt;br&gt;&lt;br&gt;onreadystatechange：&lt;br&gt;在XMLHTTPRequest对象的状态发生变化时触发，使用方法与其它HTML对象的事件相同。可以用于根据不同的状态返回不同的结果。&lt;br&gt;&lt;br&gt;&lt;br&gt;例1：要求返回HTML文件内容，因要求的内容为静态文本，方法不重要，故用GET方式提交。&lt;br&gt;&lt;br&gt;xmlhttp.html:&lt;br&gt;&amp;lt;script language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br&gt;if (window.ActiveXObject &amp;amp;&amp;amp; !window.XMLHttpRequest) {&lt;br&gt;window.XMLHttpRequest = function() {&lt;br&gt;return new ActiveXObject('Microsoft.XMLHTTP');&lt;br&gt;};&lt;br&gt;}&lt;br&gt;var myxml = new XMLHttpRequest();&lt;br&gt;myxml.onreadystatechange = function(){&lt;br&gt;if(myxml.readyState==4)&lt;br&gt;document.write(myxml.responseText);&lt;br&gt;}&lt;br&gt;myxml.open(&amp;quot;GET&amp;quot;,&amp;quot;http://localhost/request.html&amp;quot;,true);&lt;br&gt;try{&lt;br&gt;myxml.send();&lt;br&gt;}&lt;br&gt;catch(e){&lt;br&gt;document.write(&amp;quot;暂无法连接到服务器&amp;quot;);&lt;br&gt;}&lt;br&gt;&amp;lt;/script&amp;gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;request.html:&lt;br&gt;&lt;br&gt;Hello, this is a test html.&lt;br&gt;&lt;br&gt;例2：用GET方法向服务器php程序提交并输出返回。&lt;br&gt;&lt;br&gt;xmlhttp.html&lt;br&gt;&lt;br&gt;&amp;lt;script language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br&gt;if (window.ActiveXObject &amp;amp;&amp;amp; !window.XMLHttpRequest) {&lt;br&gt;window.XMLHttpRequest = function() {&lt;br&gt;return new ActiveXObject('Microsoft.XMLHTTP');&lt;br&gt;};&lt;br&gt;}&lt;br&gt;var myxml = new XMLHttpRequest();&lt;br&gt;myxml.onreadystatechange = function(){&lt;br&gt;if(myxml.readyState==4)&lt;br&gt;document.write(myxml.responseText);&lt;br&gt;}&lt;br&gt;myxml.open(&amp;quot;GET&amp;quot;,&amp;quot;http://localhost/request.php?user=badegg&amp;amp;content=welcome&amp;quot;,true);&lt;br&gt;try{&lt;br&gt;myxml.send();&lt;br&gt;}&lt;br&gt;catch(e){&lt;br&gt;document.write(&amp;quot;暂无法连接到服务器&amp;quot;);&lt;br&gt;}&lt;br&gt;&amp;lt;/script&amp;gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Request.php:&lt;br&gt;&lt;br&gt;&amp;lt;?php&lt;br&gt;echo $_GET['user'].&amp;quot;,&amp;quot;.$_GET['content'].&amp;quot;!&amp;quot;;&lt;br&gt;?&amp;gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;例3：用POST方法向服务器PHP程序提交数据并输出返回内容。&lt;br&gt;&lt;br&gt;xmlhttp.html:&lt;br&gt;&lt;br&gt;&amp;lt;script language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br&gt;if (window.ActiveXObject &amp;amp;&amp;amp; !window.XMLHttpRequest) {&lt;br&gt;window.XMLHttpRequest = function() {&lt;br&gt;return new ActiveXObject('Microsoft.XMLHTTP');&lt;br&gt;};&lt;br&gt;}&lt;br&gt;var myxml = new XMLHttpRequest();&lt;br&gt;myxml.onreadystatechange = function(){&lt;br&gt;if(myxml.readyState==4)&lt;br&gt;document.write(myxml.responseText);&lt;br&gt;}&lt;br&gt;myxml.open(&amp;quot;POST&amp;quot;,&amp;quot;http://localhost/request.php &amp;quot;,true);&lt;br&gt;myxml.setRequestHeader(&amp;quot;Content-Type&amp;quot;,&amp;quot;application/x-www-form-urlencoded&amp;quot;);&lt;br&gt;try{&lt;br&gt;myxml.send(&amp;quot;user=goodegg&amp;amp;content=Goodbye&amp;quot;);&lt;br&gt;}&lt;br&gt;catch(e){&lt;br&gt;document.write(&amp;quot;暂无法连接到服务器&amp;quot;);&lt;br&gt;}&lt;br&gt;&amp;lt;/script&amp;gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;request.php:&lt;br&gt;&lt;br&gt;&amp;lt;?php&lt;br&gt;echo $_POST['user'].&amp;quot;,&amp;quot;.$_POST['content'].&amp;quot;!&amp;quot;;&lt;br&gt;?&amp;gt;&lt;/font&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%5bAjax%5d+Ajax+%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0(1)&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!120.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!120.entry</guid><pubDate>Tue, 22 Nov 2005 06:47:13 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!120/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!120.entry#comment</wfw:comment><dcterms:modified>2005-12-07T04:36:49Z</dcterms:modified></item></channel></rss>