网站建设教程【学习PHP】12. 取得HTML传递参数

我们这这节要讲的是怎样获得HTML传递的基本参数,接着会用小小的训炼,让使用人可以在表格输入内容,网站服务器会意谓输入的内容传到相对性应的信息。

为什么会把这这节放进前面讲呢?因为学习PHP里很都会遇到网址传值、处理表格的难点,也希望学生们可以尝试做出简单的PHP找寻操作程序。


什么叫GET&POST?

在这儿之前,大伙儿先把握什么叫GET与POST。

GET–是HTTP方法中的一个,一般 用以得到网页页面网页页面,可以额外带基本参数。

例如用浏览器去http://domain.com这一网址浏览 ,对浏览器事实上就是运用HTTPGet方法,去URL:domain.com拿数据信息信息。你可以额外给这一网页页面网页页面一些基本参数,也就是运用Query,例如http://domain.com?yourName=时间线。但是你的基本参数对于这一网页页面网页页面有没有伤害,要看这一网页页面网页页面所相符合的操作程序有没有处理。一般的网址你私加些字符串数组是也沒有与众不同体现的。

POST–是HTTP方法中的一个,一般 用以传递数据给网址。广泛搭配HTTP 一起运用。可是如果是要想传递数据给网址都可以用它。

GET与POST现在在操作实务上的差别重要为GET会变更URL,并且GET一般会缓存结果。POST一般 不易希望结果被缓存住,例如你尝试提升么加一笔数据信息信息,结果是第二笔失败了。

但是因为缓存体系,你获得了上一次的结果,给你感觉你2次都成功了。以前GET有篇数限定,但现在浏览器一般 没那么苛刻,仍然会中国海关海关放行。而且除非是就是你递交档案文件,否则事实上不太会超过。因此新手在记忆能力时,就先问一问本身是要得到数据信息信息还是要送数据信息信息回家网站服务器。取原材料用GET,送数据信息信息用POST,那般就不太会不对。

额外一提,现在流行RESTFUL的URL,它并并不是“尽量”,只是个建议设计理念而已。比较熟练以后再去把握就可以。

现在返回PHP

我们可以运用到两个很重要的涵数.$_GET[“”]与.$_POST[“”],在.php的网页页面网页页面里,加载传输后的基本参数。新手入门的学生们看了很有可能雾煞煞,不要紧,大伙儿先直接看案例。

GET的操作方法

假设我们在「10_得到HTML传递基本参数.php」这一档案文件里写成下面的语法,

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

在这其中$_GET[“yourName”]是PHP的涵数,我们可以根据这一涵数,去加载大伙儿务必的值,当使用人到网址输入以下URL,

http://localhost:8888/10_得到HTML传递基本参数.php?yourName=时间线

(放进浏览器urlbar可以省去http://,浏览器会帮你补)

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

基本参数姓名:yourName

(基本参数姓名尽量和$_GET[“yourName”]数组里的值完全一致才会加载获得成功。(备注名称:数字能量数组是指[],之后会教到。)

变量类型:时间线

(使用人独立输入的值)

大伙儿就可以在PHP网页页面网页页面看到使用人应用GET方法所传输出来的变量类型「时间线」。

POST的操作方法

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

POST是根据表格传值,因此大伙儿尽量要有一个「表格」与「当使用人到表格按着送出表格之后所传送到的网页页面网页页面」。

在这其中表格是.html档,我们可以开启「10-1_一个HTML_form.html」案例来训炼。

 使用人到表格按着送出表格之后所传送到的网页页面网页页面是.php档,我们可以开启「10_得到HTML传递基本参数.php」案例来训炼。

校正我弥补:

最好不能用中文取名字,虽然在MAMP的地理环境下看起来没什么难点,但還是存在一些UTF-8序号的顾忌。例如是不是理应要装进去?倘若独立训炼,最好无须运用中文取名字的档案文件与方式。

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

1.最开始先在「10-1_一个HTML_form.html」创建表格,在这其中好多个要注意的重要下列:

method=“post”=>代表着以post为无线通信技术

action=“./10_得到HTML传递基本参数.php”=>当使用人按着送出表格之后所传送到的网页页面网页页面。

name=“yourName”=>基本参数姓名尽量和「10_得到HTML传递基本参数.php」中的$_POST[“yourName”]数组里的值完全一致才会加载获得成功。

placeholder=“”=>输入字段提示信息

buttonsype=“submit”=>送出功能键

2.随后我们在使用人按着送出表格之后所传送到的网页页面网页页面「10_得到HTML传递基本参数.php」这支操作程序里,写成$_POST[“yourName”]。

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

3.用电脑打开浏览器「10-1_一个HTML_form.html」档案文件,输入时间线后,按着送出功能键。

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

大伙儿就可以发现时间线这一值被传送到「10_得到HTML传递基本参数.php」这一网页页面网页页面了!

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

随后大伙儿按鼠标单击「检查」,打开微信开发环境,再按「Network」中的「Headers」

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

接着往下拉,你也就可以看到「FormData」里面有一个「时间线」这一值。

这就是我们没多久送去的值。

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

那倘若把没多久「10-1_一个HTML_form.html」档案文件中的name=“yourName”改成name=“test1”,

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

随意输入内容后按着送出,

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

FormData能够 见到test1:sadasdas,如今代代相传的值的名字变为test1,数据变为sadasdas(随便乱动的值)。 

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

可是「10_获得HTML传递主要参数.php」这一网页页面入读不上值了

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

换句话说「10-1_一个HTML_form.html」中的name=“值”,务必和

「10_获得HTML传递主要参数.php」中$_POST[“值”],这两个“值”务必完全一致才可以被载入到。

可否运用GET方法将表格送出?

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

回答是能够 的,你要是在 的地区将method改为get,在浏览器随便输入文本后按送出去,

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

 它会将主要参数包括在网站地址中,随后展现在网页页面上。

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

[练习]建立搜寻功能

1.菜谱搜寻

接下去大家做下小练习,运用以前学过的ifelse做一个菜谱搜寻网页页面,大家假如设置了「鲁肉饭」这一菜谱,当使用者搜寻「鲁肉饭」按住「送出」,

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

会出示预置显示信息的內容(if满足条件),

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技


当使用者输入的內容,是大家没被设置的值的情况下(else不满足条件),比如输入[牛肉拉面]后按送出去,

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

搜寻不上时需显示信息的內容。 

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

大家可以用ifelse分辨进行这支搜寻程序流程,

写法以下:

PHP档

<?php

if($_GET[“recipe”]==null){

//使用者什么都没输入

echo“

请到下一页Form搜寻

”;

}else{

echo“

您搜寻的是:”.$_GET[“recipe”].“

“;

if($_GET[“recipe”]==“鲁肉饭”){

//使用者输入內容是鲁肉饭时

echo“题目:阿嬷的鲁肉饭

”;

echo“流程:

”;

echo“1:找一个阿嬷

”;

echo“2:请他帮你煮

”;

}else{

//使用者输入內容是鲁肉饭之外时

echo“您的规定太过度繁杂

”;

echo“叫外卖很有可能会较为具体一点

”;

}

}

?>

HTML檔

<!DOCTYPE>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
   
    <h1>10-1_一個_HTML_form</h1>
    <form method="get" action="./10_取得HTML传递参数.php">
      <input type="text" name="recipe" placeholder="请输入食譜名称" />
      <button type="submit">
        送出
      </button>
    </form>
  </body>
</html>

2.语系搜寻

做法与所述一致,一样运用ifelse作出一个语系搜寻程序流程,假如使用者输入设置好的zh-TW「中国台湾语系」时,则显示信息预置显示信息的中文內容,不然则一律显示信息「someenglishpost」。

PHP档

<?php

if($_GET[“recipe”]==lang){

echo“

请设置語言”;//使用者什么都没输入

}else{

echo“

您设置的語言是:”.$_GET[“lang”].“

“;

if($_GET[“lang”]==“zh-TW”){

//使用者输入內容是zh-TW时

//台湾中文便是要显示信息阿嬷的鲁肉饭

//好拉实际上是不想换

echo“题目:阿嬷的鲁肉饭

”;

echo“流程:

”;

echo“1:找一个阿嬷

”;

echo“2:请他帮你煮

”;

}else{

//使用者输入內容是zh-TW之外时

echo“someenglishpost

”;

}

}

?>


HTML檔

<!DOCTYPE>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <h1>10-1_一個_HTML_form</h1>
    <form method="get" action="./10_取得HTML传递参数.php">
      <input type="text" name="lang" placeholder="请输入語言" />
      <button type="submit">
        送出
      </button>
    </form>
  </body>
</html>

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

便会显示信息「zh-TW」的预置內容,

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

假如搜寻预置zh-TW之外的內容,比如「en」,

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

则会显示信息不满足条件时的提醒。

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

假如你不愿分为2个网页页面,要想另外搜寻并将数据显示在该网页页面也是能够 的,

这时能够 无需写action=“./10_获得HTML传递主要参数.php”(由于在同一页)


写法以下::

<?php
if ($_GET["recipe"] == null){
?>
  <form method="get" >
    <input type="text" name="lang" placeholder="请输入語言" />
    <button type="submit">
      送出
    </button>
  </form>
<?php
 } else {
    echo "<h1>您設定的語言是:" . $_GET["lang "] . "</h1>";
   
    if ($_GET["lang "] == "zh-TW"){          
     
      //使用者輸入內容是zh-TW時
   
      echo "標題:阿嬤的魯肉飯<br/>";
      echo "步驟:<br/>";
      echo "1: 找一個阿嬤<br/>";
      echo "2: 請他幫你煮<br/>";
   
    }else{        
                       
      //使用者輸入內容是zh-TW以外時
      echo "some english post<br/>";
    }
}
?> 

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技

网站建设教程【学习PHP】12. 取得HTML传递参数-梦幻科技


那样搜寻和結果都能显示信息在同一网页页面了!

校准我填补:

像那样写在一起的的写法实际上十分不太好阅读文章,因此 在MVC架构下的PHP框架大多数看不见这样子的写法。比如说Laravel或者Symfony,她们应用的是Blade(Laravel)与Twig(Symfony)这种模块去分拆外型与逻辑性,看上去会整洁许多 。

可是假如你写的是WordPress有关的主题风格款式或者外挂软件得话,像这类掺杂在一起的写法是十分普遍的。因此 关键還是看着你是在哪一个架构管理体系下工作,在乎的点会不太一样。

联系我们

13751415268

853408942

:853408942@qq.com

:9:30-22:30

QR code