Home > Backend Development > PHP Tutorial > JS+php implements an example of displaying the maximum value and location after the user enters a number

JS+php implements an example of displaying the maximum value and location after the user enters a number

怪我咯
Release: 2023-03-12 16:48:01
Original
1172 people have browsed it

This article mainly introduces JS+PHP to realize the display of the maximum value and the relative position of the number after the user inputs the number. The article provides detailed sample code for your reference and study. Friends who need it are below Let’s take a look together.

This article mainly introduces to you the relevant content about JS+PHP realizing that the maximum value and location are displayed after the user enters a number. The purpose is to distinguish the difference between JS and PHP and broaden your thinking. Let’s take a look at the details together. Introduction:

Analysis

## 1. Use JS prompt to enter the value that the user wants to enter.

2. Use the text tag of

HTML form to pass the input value to PHPprocess the file

3.PHP performs numerical judgment and selects the maximum value and position.

From shallower to deeper:

1. Get the maximum value of the array in JS.

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("最大数为"+max);
Copy after login

Here It is worth noting that you cannot directly set a variable max=0, because you are not sure whether the number you enter in the future is less than 0 or greater than 0 [the case is greater than 0], so you should choose a number in the array, just The first one of the array is good

max=a[0] .

Because the JS language is based on object-oriented process, all things in JS can be objects, so its array There are attributes, and length is an attribute of JS array that is used to obtain the length of the array. With this attribute, you can

traverse the array and then compare one by one.

2. Implement in JS Obtain the maximum and minimum values ​​of the array and their positions (i.e. the number in the array)

[Note: The position +1 in this case is for convenience of viewing, the JS array also starts at 0]

var a=[10,20,40,30];
 var max=a[0];//不能指定一个数为最大值[var max=0](除非是确定的情况下),应该用数组里面的值,a[0]即让数组第一个值作为比较的最大值.
 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("最大数为"+max+"位置为第"+(maxaddress+1)+"个");
 alert("最小数为"+min+"位置为第"+(minaddress+1)+"个");
Copy after login

3. Now use prompt for user input to obtain the value to find the maximum value, etc.

Difficulty:

1. How to input, Use prompt

2. How to convert a string into an array and convert the format?

Prerequisite knowledge:

1. What is used to split the string is The split method of the JS string object (note that everything in JS is an object, so it is called a method, not a function)

2. How to convert an "abc" string into a number type.

字符串转数字类型

◆Number

★数字类型的字符串,转换之后得到的数字。var n1="123"; var n2=Number(n1);//123

★★非数字字符串,转换之后得到是NaN。var n1="123abc"; var n2=Number(n1);//Nan 

★小数类型的字符串,转换之后得到的是原数字。var n1="123.23"; var n2=Number(n1);//123.23

 

◆parseInt

★整数数字类型的字符串,转换之后得到的整数数字。var n1="123"; var n2=parseInt(n1);//123

★数字开头的字符串,转换之后得到的是前边的数字。var n1="123abc"; var n2=parseInt(n1);//123

★非数字开头的字符串,转换之后得到的是NaN。。var n1="abc123"; var n2=parseInt(n1);//NaN

★★小数类型的字符串,转换之后取整(小数点直接省略)。var n1="123.53"; var n2=parseInt(n1);//123 var n1="-5.93"; var n2=parseInt(n1);//-5

 

◆parseFloat

★整数数字类型的字符串,转换之后得到的整数数字。var n1="123"; var n2=parseFloat(n1);//123

★数字开头的字符串,转换之后得到的是前边的数字。var n1="123abc"; var n2=parseFloat(n1);//123

★非数字开头的字符串,转换之后得到的是NaN。var n1="abc123"; var n2=parseFloat(n1);//NaN

★★小数类型的字符串,转换之后得到的是原数字。var n1="123.23"; var n2=parseFloat(n1);//123.23

 

转布尔类型

★数字和字符串转完之后为true。

★undefined、null、0转完之后为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
Copy after login

After the above analysis is completed, start writing code

<script>
  //var a=new Array(-12,34,56,88,32,"aa","-34.33","-34.34",12.23);
  /*var a=new Array(prompt("请输入数字"));
  document.write(a);*/
  var b=prompt("请输入要比较的数,用\",\"号隔开");
  var a=new Array();
  a=b.split(",");
  // for(var j=0;j<a.length;j++){
  //   document.write(a[j]);
  // }
  alert(typeof(a)+" JS数组本质是对象啊!!");//本质是对象 PHP数组就是数组,没有属性(比如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("最大数为"+max+"位置为第"+(maxaddress+1)+"个"+"<br>");
  document.write("最小数为"+min+"位置为第"+(minaddress+1)+"个");
 </script>
Copy after login

4. The above is processed by JS, my purpose is to link JS+PHP+HTML.

PHP cannot directly interact with the front end, that is, it cannot directly obtain the value entered by the user, but must pass the html form form

JS data to PHP. You can use AJAX, but I will talk about it later, today Let’s see if there is any way.

1. Make an HTML form:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 
</head>
<body>
 <form action="deal.php" method="post">
 请输入数字:<input type="text" id="shu" name="shuzi" value="">
 <input type="submit" value="提交">
 </form>
 
</body>
</html>
Copy after login

2. JS pass values ​​to HTML:

 <script type="text/javascript">
  var a=prompt("请输入数字");
  document.getElementById("shu").value=a;
 </script>
Copy after login

There is a pitfall here. If you write the JS code At the header of HTML, an error will be reported, saying

Uncaught TypeError: Cannot set property 'value' of null

Because of the browser parsing order, when the browser parses JS (enter the number to complete (when The JS code is written at the back. You parse the HTML first, and then I will give you the value. (Detailed analysis of the specific situation, not necessarily all JS code is in the header)

5. Okay, HTML passes the value, now Look at PHP

<?php
header("Content-type:text/html;charset=utf-8");
$a=$_POST[&#39;shuzi&#39;];
//var_dump($a);
$b=explode(&#39;,&#39;,$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)."个";


?>
Copy after login

Here we mainly look at explode (split the string into arrays) count (get the number of arrays)

Also pay attention to

type conversion

issues, Please add it later or write it yourself.

The last picture above:

The above is the detailed content of JS+php implements an example of displaying the maximum value and location after the user enters a number. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template