金色的骷髅 发表于 2015-2-4 00:03:36

PHP网页设计联合PHP利用HTML表单(3)

怎么样出来了吧,怎么样自己也可以写出php程序了,虽然离职业和专业的人还有很远,但是好的开始是成功的一半。这个时候改怎么做了呢。现在就是拿1本高手推荐的书,重头到尾读1遍,我说的这个读是自己看。   

使人惊异的消逝的复选框


复选框只要实践被选中时才被提交,熟悉到这一点很主要。不然,它的消逝将告知您所需晓得的实情:用户没有单击复选框。利用复选框时,您可使用 isset() 函数显式地反省是不是设置了值:



清单 7. 反省是不是提交了复选框
...
$contact_value = $HTTP_GET_VARS['contact'];
echo $contact_value;
if (isset($contact_value)) {
//The checkbox was clicked
} else {
//The checkbox wasn't clicked
}
...

获得一切表单值


复选框字段只是您对预期表单值称号能够不完整有掌控的情况的示例之一。凡是,您会发明有一个以通用办法会见一切表单值的例程是很有效的。

侥幸的是,由于 $HTTP_GET_VARS及其同类只是散列表,您可以用数组的一些特征来操作它们。例如,您可使用 array_keys() 函数来获得一切潜伏值称号的列表:



清单 8. 获得表单值称号的列表
...
$form_fields = array_keys($HTTP_GET_VARS);
for ($i = 0; $i < sizeof($form_fields); $i++) {
    $thisField = $form_fields[$i];
    $thisValue = $HTTP_GET_VARS[$thisField];
    echo $thisField ." = ". $thisValue;
    echo "<br />";
}
...


在本例中,您实践上联合了几种手艺。起首,检索表单字段称号的数组并将其定名为 $form_fields。$form_fields 数组只是一个典范的数组,因而您可使用 sizeof() 函数来肯定潜伏键的数量,并对每项停止轮回遍历。关于每项,检索字段的称号然后利用该称号获得实践值。生成的 Web 页面看起来以下:



ship = Midnight Runner
tripdate = 12-15-2433
exploration = yes
crew = Array


这里有两个主要事项。第一,contact 字段基本没有前往值,这正如预期的那样。第二,crew 值(特地说一下,您也许晓得:它的称号是 crew 而不是 crew[])是一个数组而不是值。为了实践检索一切值,需求利用 is_array() 函数检测一切数组并响应地处置它们:



清单 9. 处置数组
...
for ($i = 0; $i < sizeof($form_fields); $i++) {
    $thisField = $form_fields[$i];
    $thisValue = $HTTP_GET_VARS[$thisField];
    if (is_array($thisValue)){
      for ($j = 0; $j < sizeof($thisValue); $j++) {
            echo $thisField ." = ". $thisValue[$j];
            echo "<br />";
      }
    } else {
      echo $thisField ." = ". $thisValue;
    }
    echo "<br />";
}
...


了局是一切已实践提交的数据:



ship = Midnight Runner
tripdate = 12-15-2433
exploration = yes
crew = snertal
crew = gosny


最初一个申明:点

既然您有了能顺应您提交任何表单值的表单操作页面,您就需求抽一点工夫思索一个经常让 PHP 法式员感应不测的情况。

有些情形下,设计人员会选择利用一个图形按钮而不是提交按钮,图形按钮如图 2 所示,代码如清单 10 所示。



清单 10. 添加图形按钮
...
      <tr>
         <td valign="top">Crew species:</td>
         <td>
               <select name="crew[]" multiple="multiple">
                   <option value="xebrax">Xebrax</option>
                   <option value="snertal">Snertal</option>
                   <option value="gosny">Gosny</option>
               </select>
         </td>
      </tr>
      <tr>
         <td colspan="2" align="center">
            <input type="image" src="button.gif" name="formbutton"/>
         </td>
      </tr>
    </table>
...



图 2. 表单上的图形按钮


请注重,虽然上图中只要一个图象,却有两个图形按钮(或希冀的了局)。作为开辟人员,您可以经由过程反省和值一同前往的 x 和 y 坐标晓得用户单击了何处。现实上,按原样提交该表单能够会创立以以下所示开头的 URL 和查询字符串:



...snertal&crew%5B%5D=gosny&formbutton.x=37&formbutton.y=14


请注重附加到按钮称号的 .x 和 .y。但是,假如您盘算提交该页面然后检查了局,您会看到:



ship = Midnight Runner
tripdate = 12-15-2433
exploration = yes
crew = snertal
crew = gosny
formbutton_x = 37
formbutton_y = 14


请注重,点号(.)已被转换成下划线(_)。这仿佛有点奇异,但它是需要的,由于 PHP 中的变量名不克不及有点号,因而 $formbutton.x 会是一个不法变量名。现实上,表单称号中的任何点号 ― 不单单针对图象按钮 ― 都被转换成下划线。
停止语


在本文中,您看到了对用户经由过程HTML或XHTML表单提交的信息停止会见的几种办法。若何处置该信息取决于您利用的PHP版本和您是不是能将表单变量作为全局变量停止会见。不管何种情形,表单值可作为数组利用,而且您可以用数组的特征来轮回遍历一切可用的值。
不懂的问题有很多高手帮你解决。但不要认为你是新手,就不能帮助别人,比如今天你学会了怎样安装PHP,明天还可能有朋友会问这个问题,你就可以给他解答,不要认为这是浪费时间,忙别人其实就是帮助自己。

飘飘悠悠 发表于 2015-2-4 08:21:55

Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81

乐观 发表于 2015-2-9 20:01:46

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。

分手快乐 发表于 2015-2-10 05:15:55

这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。

只想知道 发表于 2015-2-10 07:45:50

曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ;

柔情似水 发表于 2015-3-1 03:16:37

作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。

灵魂腐蚀 发表于 2015-3-10 12:26:03

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

深爱那片海 发表于 2015-3-15 18:18:11

php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)

若相依 发表于 2015-3-22 01:10:42

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

兰色精灵 发表于 2015-3-24 04:49:45

有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。

海妖 发表于 2015-3-26 19:51:29

环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。

第二个灵魂 发表于 2015-3-31 05:27:54

php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)

因胸联盟 发表于 2015-4-1 21:34:10

对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。

冷月葬花魂 发表于 2015-4-2 10:40:58

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。

飘灵儿 发表于 2015-4-4 01:54:38

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

仓酷云 发表于 2015-4-4 19:10:37

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

莫相离 发表于 2015-4-20 18:52:12

最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。

愤怒的大鸟 发表于 2015-4-23 18:40:19

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

精灵巫婆 发表于 2015-4-27 08:55:35

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

再见西城 发表于 2015-6-14 20:57:50

我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
页: [1]
查看完整版本: PHP网页设计联合PHP利用HTML表单(3)