最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS+PHP實(shí)現(xiàn)用戶輸入數(shù)字后顯示最大的值及所在位置

 更新時(shí)間:2017年06月19日 08:33:41   作者:徐逸以軒  
這篇文章主要給大家介紹了JS+PHP實(shí)現(xiàn)用戶輸入數(shù)字后顯示最大的值及是第幾個(gè)的相關(guān)位置,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來(lái)一起看看吧。

本文主要給大家介紹的是關(guān)于JS+PHP實(shí)現(xiàn)用戶輸入數(shù)字后顯示最大的值及所在位置的相關(guān)內(nèi)容,目的:分清JS PHP的區(qū)別,拓寬思維,下面來(lái)一起看看詳細(xì)的介紹:

分析

       1.利用JS的prompt輸入用戶想要輸入的值.

       2.利用HTML表單的text標(biāo)簽將輸入的值傳遞給PHP處理文件

       3.PHP進(jìn)行數(shù)值判定,選出最大值和位置.

由淺入深:

1.在JS實(shí)現(xiàn)獲取數(shù)組的最大值.

var a=[10,20,40,30];
 // var max=0;
 var max=a[0];
 for(var i=0;i<a.length;i++){
 if(max<a[i]){
  max=a[i];
 }
 }
 alert("最大數(shù)為"+max);

這里值得注意的是:不可以直接設(shè)置一個(gè)變量max=0,因?yàn)槟悴淮_定以后輸入的數(shù)字是小于0的還是大于0的[案列是大于0的],所以應(yīng)該選擇數(shù)組里面的一個(gè)數(shù),就數(shù)組的第一個(gè)好了max=a[0] .

因?yàn)镴S語(yǔ)言是基于對(duì)象面向過(guò)程的,JS里面所有的事物都可以是對(duì)象,所以它的數(shù)組有屬性,length就是JS數(shù)組的一個(gè)獲得數(shù)組長(zhǎng)度的屬性,有了這個(gè)屬性就可以遍歷數(shù)組,然后進(jìn)行一一比較.

2.在JS實(shí)現(xiàn)獲得數(shù)組的最大值最小值和他們的位置(即在數(shù)組中第幾個(gè))

[注:本案例位置+1是為了方便查看,JS數(shù)組開(kāi)始也是0]

var a=[10,20,40,30];
 var max=a[0];//不能指定一個(gè)數(shù)為最大值[var max=0](除非是確定的情況下),應(yīng)該用數(shù)組里面的值,a[0]即讓數(shù)組第一個(gè)值作為比較的最大值.
 var maxaddress=0;
 var min=a[0];
 var minaddress=0;
 for(var i=0;i<a.length;i++){
  if(max<a[i]){
   max=a[i];
   maxaddress=i
  }
  if(min>a[i]){
   min=a[i];
   minaddress=i
  }
 }
 alert("最大數(shù)為"+max+"位置為第"+(maxaddress+1)+"個(gè)");
 alert("最小數(shù)為"+min+"位置為第"+(minaddress+1)+"個(gè)");

3.現(xiàn)在改成用prompt來(lái)進(jìn)行用戶輸入獲得值來(lái)求最大值等等.

難點(diǎn):

       1.如何輸入,用prompt

       2.如何將一個(gè)字符串轉(zhuǎn)為數(shù)組,并且要轉(zhuǎn)換格式呢?

前提知識(shí):

       1.將字符串分割 用到的是JS的string對(duì)象的spilt方法(注意,JS一切皆是對(duì)象,因此叫方法,不叫函數(shù))

       2.讓一個(gè)"abc"字符串轉(zhuǎn)為number類型,怎么轉(zhuǎn).

字符串轉(zhuǎn)數(shù)字類型

◆Number

★數(shù)字類型的字符串,轉(zhuǎn)換之后得到的數(shù)字。var n1="123"; var n2=Number(n1);//123

★★非數(shù)字字符串,轉(zhuǎn)換之后得到是NaN。var n1="123abc"; var n2=Number(n1);//Nan 

★小數(shù)類型的字符串,轉(zhuǎn)換之后得到的是原數(shù)字。var n1="123.23"; var n2=Number(n1);//123.23

 

◆parseInt

★整數(shù)數(shù)字類型的字符串,轉(zhuǎn)換之后得到的整數(shù)數(shù)字。var n1="123"; var n2=parseInt(n1);//123

★數(shù)字開(kāi)頭的字符串,轉(zhuǎn)換之后得到的是前邊的數(shù)字。var n1="123abc"; var n2=parseInt(n1);//123

★非數(shù)字開(kāi)頭的字符串,轉(zhuǎn)換之后得到的是NaN。。var n1="abc123"; var n2=parseInt(n1);//NaN

★★小數(shù)類型的字符串,轉(zhuǎn)換之后取整(小數(shù)點(diǎn)直接省略)。var n1="123.53"; var n2=parseInt(n1);//123 var n1="-5.93"; var n2=parseInt(n1);//-5

 

◆parseFloat

★整數(shù)數(shù)字類型的字符串,轉(zhuǎn)換之后得到的整數(shù)數(shù)字。var n1="123"; var n2=parseFloat(n1);//123

★數(shù)字開(kāi)頭的字符串,轉(zhuǎn)換之后得到的是前邊的數(shù)字。var n1="123abc"; var n2=parseFloat(n1);//123

★非數(shù)字開(kāi)頭的字符串,轉(zhuǎn)換之后得到的是NaN。var n1="abc123"; var n2=parseFloat(n1);//NaN

★★小數(shù)類型的字符串,轉(zhuǎn)換之后得到的是原數(shù)字。var n1="123.23"; var n2=parseFloat(n1);//123.23

 

轉(zhuǎn)布爾類型

★數(shù)字和字符串轉(zhuǎn)完之后為true。

★undefined、null、0轉(zhuǎn)完之后為false.

var n1=123; var n2=Boolean(n1);//true

var n1="123"; var n2=Boolean(n1);//true

var n1="0"; var n2=Boolean(n1);alert(n2);//true

var n1; var n2=Boolean(n1);//false

var n1=null; var n2=Boolean(n1);//false

var n1=0; var n2=Boolean(n1);//false

以上分析完畢,開(kāi)始書(shū)寫代碼

<script>
  //var a=new Array(-12,34,56,88,32,"aa","-34.33","-34.34",12.23);
  /*var a=new Array(prompt("請(qǐng)輸入數(shù)字"));
  document.write(a);*/
  var b=prompt("請(qǐng)輸入要比較的數(shù),用\",\"號(hào)隔開(kāi)");
  var a=new Array();
  a=b.split(",");
  // for(var j=0;j<a.length;j++){
  //   document.write(a[j]);
  // }
  alert(typeof(a)+" JS數(shù)組本質(zhì)是對(duì)象啊!!");//本質(zhì)是對(duì)象 PHP數(shù)組就是數(shù)組,沒(méi)有屬性(比如length)
  document.write(a+"<br>");
  console.log(a+"<br>");
  var max=parseFloat(a[0]);
  //document.write(max);
  var maxaddress=0;
  var min=parseFloat(a[0]);
  var minaddress=0;
  
  for(var i=0;i<=a.length;i++){
   var shu=parseFloat(a[i]);
   if(shu>max){
    max=shu;
    maxaddress=i;
   }
   if(shu<min){
    min=a[i];
    minaddress=i;
   }
  }
  document.write("最大數(shù)為"+max+"位置為第"+(maxaddress+1)+"個(gè)"+"<br>");
  document.write("最小數(shù)為"+min+"位置為第"+(minaddress+1)+"個(gè)");
 </script>

4.以上是JS做處理,我的目的是讓JS+PHP+HTML聯(lián)動(dòng)起來(lái).

PHP是無(wú)法直接前端交互的,即他不能直接獲取用戶輸入的值,而要通過(guò)html 的form表單

JS數(shù)據(jù)傳給PHP,你可以用AJAX,但我以后再講,今天看看有什么方法.

1.制作HTML表單:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 
</head>
<body>
 <form action="deal.php" method="post">
 請(qǐng)輸入數(shù)字:<input type="text" id="shu" name="shuzi" value="">
 <input type="submit" value="提交">
 </form>
 
</body>
</html>

2.JS傳值給HTML:

 <script type="text/javascript">
  var a=prompt("請(qǐng)輸入數(shù)字");
  document.getElementById("shu").value=a;
 </script>

這里有個(gè)坑,如果將JS代碼寫在HTML的header處,會(huì)報(bào)錯(cuò),說(shuō)Uncaught TypeError: Cannot set property 'value' of null

因?yàn)闉g覽器解析順序,在瀏覽器解析JS的時(shí)候(輸入數(shù)字完成的時(shí)候),瀏覽器開(kāi)始解析HTML,雖然JS賦值了text的value,但被后面HTML的解析成了text的value為NULL,這是自相矛盾的.

所以盡可能的讓JS代碼寫在后面,你先解析HTML,然后我再給你值.(具體情況具體分析,不一定JS代碼都在頭部)

5.好了,HTML傳值了,現(xiàn)在看PHP

<?php
header("Content-type:text/html;charset=utf-8");
$a=$_POST['shuzi'];
//var_dump($a);
$b=explode(',',$a);
for($i=0;$i<count($b);$i++){
 echo $b[$i];
}
var_dump($b);

$max=$b[0];
$maxaddress=0;
for($j=0;$j<count($b);$j++){
 if($b[$j]>$max){
  $max=$b[$j];
  $maxaddress=$j;
 }

}
echo "最大值是".$max."<br>";
echo "位置為第".($maxaddress+1)."個(gè)";


?>

這里主要是看explode(將字符串拆分成數(shù)組) count(獲得數(shù)組的個(gè)數(shù))

還有注意類型轉(zhuǎn)換問(wèn)題,以后補(bǔ)充或者你自己寫寫吧.

最后上圖:

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • PHP使用數(shù)組實(shí)現(xiàn)隊(duì)列

    PHP使用數(shù)組實(shí)現(xiàn)隊(duì)列

    PHP的數(shù)組處理函數(shù)還可以將數(shù)組實(shí)現(xiàn)隊(duì)列,堆棧是“先進(jìn)后出”。在堆棧中,最后壓入的數(shù)據(jù)(進(jìn)棧),將會(huì)被最先彈出(出棧)。而隊(duì)列是先進(jìn)先出,就如同銀行的排號(hào)機(jī)
    2012-02-02
  • php引用計(jì)數(shù)器進(jìn)行垃圾收集機(jī)制介紹

    php引用計(jì)數(shù)器進(jìn)行垃圾收集機(jī)制介紹

    每一種計(jì)算機(jī)語(yǔ)言都有自己的自動(dòng)垃圾回收機(jī)制,讓程序員不必過(guò)分關(guān)心程序內(nèi)存分配,php也不例外,但是在面向?qū)ο缶幊?OOP)編程中,有些對(duì)象需要顯式的銷毀;防止程序執(zhí)行內(nèi)存溢出
    2012-09-09
  • php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程

    php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程

    這篇文章主要介紹了php面向?qū)ο蟪绦蛟O(shè)計(jì),結(jié)合實(shí)例形式分析了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念、原理以及類的定義、對(duì)象實(shí)例化、構(gòu)造方法等簡(jiǎn)單使用技巧,需要的朋友可以參考下
    2019-06-06
  • PHP實(shí)現(xiàn)的螞蟻爬桿路徑算法代碼

    PHP實(shí)現(xiàn)的螞蟻爬桿路徑算法代碼

    這篇文章主要介紹了PHP實(shí)現(xiàn)的螞蟻爬桿路徑算法代碼,以完整實(shí)例形式分析了螞蟻爬桿路徑算法的原理與實(shí)現(xiàn)方法,涉及php數(shù)值計(jì)算與數(shù)組操作的相關(guān)技巧,需要的朋友可以參考下
    2015-12-12
  • php刪除二維數(shù)組中的重復(fù)值方法

    php刪除二維數(shù)組中的重復(fù)值方法

    下面小編就為大家分享一篇php刪除二維數(shù)組中的重復(fù)值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • 幾款免費(fèi)開(kāi)源的不用數(shù)據(jù)庫(kù)的php的cms

    幾款免費(fèi)開(kāi)源的不用數(shù)據(jù)庫(kù)的php的cms

    下面的幾種內(nèi)容采集系統(tǒng)都是英文版的,全部不需使用數(shù)據(jù)庫(kù),都是國(guó)外的免費(fèi)并且開(kāi)源CMS。對(duì)中文支持如何,你自己試試吧!
    2010-12-12
  • php保存任意網(wǎng)絡(luò)圖片到服務(wù)器的方法

    php保存任意網(wǎng)絡(luò)圖片到服務(wù)器的方法

    這篇文章主要介紹了php保存任意網(wǎng)絡(luò)圖片到服務(wù)器的方法,涉及php通過(guò)curl操作遠(yuǎn)程圖片的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • php配置php-fpm啟動(dòng)參數(shù)及配置詳解

    php配置php-fpm啟動(dòng)參數(shù)及配置詳解

    php-fpm 啟動(dòng)參數(shù)及重要配置詳解,這個(gè)不用多說(shuō),做PHP開(kāi)發(fā)的同學(xué)都需要用。
    2013-11-11
  • PHP中通過(guò)fopen()函數(shù)訪問(wèn)遠(yuǎn)程文件示例

    PHP中通過(guò)fopen()函數(shù)訪問(wèn)遠(yuǎn)程文件示例

    這篇文章主要介紹了PHP中通過(guò)fopen()函數(shù)訪問(wèn)遠(yuǎn)程文件示例,本文講解了fopen函數(shù)的作用、使用它需要的配置問(wèn)題、超時(shí)問(wèn)題等內(nèi)容,并給出了代碼實(shí)例,需要的朋友可以參考下
    2014-11-11
  • PHP __autoload()方法真的影響性能嗎?

    PHP __autoload()方法真的影響性能嗎?

    對(duì)于php性能問(wèn)題,議論最多的就是__autoload()方法,很多人提到這個(gè)方法非常影響性能。還有人說(shuō)opcode也能影響到__autoload()方法,所以針對(duì)這兩點(diǎn)我做了個(gè)測(cè)試
    2012-03-03

最新評(píng)論

瓦房店市| 类乌齐县| 惠安县| 荥阳市| 安阳市| 错那县| 滨州市| 福清市| 舟曲县| 南和县| 友谊县| 澜沧| 宁武县| 德保县| 延长县| 泰和县| 建昌县| 永昌县| 寿阳县| 牙克石市| 三门县| 华安县| 紫金县| 济宁市| 巫溪县| 商丘市| 柳江县| 上林县| 和林格尔县| 额济纳旗| 衡水市| 华坪县| 新宁县| 海宁市| 赤壁市| 太保市| 元江| 霍邱县| 海淀区| 维西| 昔阳县|