PHP运行整个代码,不会';不要等待输入
我对PHP有一个基本的问题。我想通过从表格中请求输入许多数据:PHP运行整个代码,不会';不要等待输入,php,post,Php,Post,我对PHP有一个基本的问题。我想通过从表格中请求输入许多数据: do{ if (isset($_POST['x'])&&($_POST['y'])){ $x = $_POST['x']; $y = $_POST['y']; //núclero de processamento if ($x > 0 && $y > 0){
do{
if (isset($_POST['x'])&&($_POST['y'])){
$x = $_POST['x'];
$y = $_POST['y'];
//núclero de processamento
if ($x > 0 && $y > 0){
echo "$x $y primeiro quadrante";
} elseif ($x > 0 && $y < 0){
echo "$x $y segundo quadrante";
} elseif ($x < 0 && $y < 0){
echo "$x $y terceiro quadrante";
} elseif ($x < 0 && $y > 0){
echo "$x $y quarto quadrante";
}
}
} while($x && $y != 0);
do{
如果(设置($_POST['x'])和($_POST['y'])){
$x=$_POST['x'];
$y=$_POST['y'];
//núclero de processamento
如果($x>0&$y>0){
回声“$x$y primeiro象限”;
}其他($x>0&$y<0){
回显“$x$y segundo象限”;
}elseif($x<0&$y<0){
echo“$x$y terceiro象限”;
}elseif($x<0&$y>0){
回声“$x$y四分之一象限”;
}
}
}而($x&&$y!=0);
在这种情况下,我必须使用一个循环,但这里的交易,我必须在表单上输入不确定的坐标,每当我输入0,它应该打破循环并处理数据打印出每个数据的结果。但它只处理一个表单,重新加载页面并永远循环。我遗漏了什么?如果执行一个php脚本是一次性的,那么所有代码都将被执行,用户不会停止或进行交互。在您的情况下,您的循环永远不会停止,因为您希望在执行后更改值(这是不可能的)。如果您想用php在shell上创建一个交互式应用程序,这里是官方文档
希望对您有所帮助。如果您想通过网站实现这一点,您需要一个表单,用户可以在其中输入值,然后用户必须在插入数据时提交此表单。现在您可以检查输入(例如,使用它进行工作,或者检查,如果插入了0)。现在,您可以显示结果数据和表单以输入下一个数据。如果您想在用户提交下一个表单时处理刚刚处理过的数据,您需要将这些值存储在服务器上(例如,数据库中)或网站内部(例如,使用隐藏的html字段)。web和HTTP不以这种方式工作,您不能连续输入数据,等待一段时间,然后再输入更多数据。相反,它就像htis:
- 向网页添加JavaScript(输入数字时检查数字)
- 重写PHP代码,使其从控制台运行(即本地,不涉及web服务器/浏览器)(循环,请求一对XY,然后输出象限)
- 重写代码,使其支持接收不定数量的坐标对(请求中可能有两个数组,一个用于X坐标,一个用于Y坐标)
if(isset($\u POST['x'])和&isset($\u POST['y'])){
$x=$_POST['x'];
$y=$_POST['y'];
做{
//núclero de processamento
如果($x>0&$y>0){
回声“$x$y primeiro象限”;
}其他($x>0&$y<0){
回显“$x$y segundo象限”;
}elseif($x<0&$y<0){
echo“$x$y terceiro象限”;
}elseif($x<0&$y>0){
回声“$x$y四分之一象限”;
}
}而($x&&$y!=0);
}
为什么甚至需要循环?您的循环在每次迭代中对完全相同的值进行完全相同的检查。不知道这个循环还能做什么?@GabrielFreitas你是说你可以通过提交一次表单来发布多个坐标对吗?如果是这样,那么$\u POST['x']或$\u POST['y']到底包含什么?@gabriefreitas编辑它(我们说的是一个表单,对吗?不是多个?),删除那些不需要严格理解表单工作原理的部分?更挑剔的是,PHP不从表单“获取”数据,表单被发送到后端/PHP:)web不是这样工作的。浏览器向服务器/后端/PHP发送请求。如果您请求的特定文件(例如/index.php)需要一些数据来处理作业,那么您可以附加一些数据。但你不能不断地输入新数据。最初随请求一起发送的数据是所有数据,不能先发送(3,2)和(1,1),然后再输入(0,0)。多个坐标是可能的,但您必须一次发送所有坐标。我注意到,但在这种情况下,它如何从表单中检索无限数量的数据(不使用交互式shell)?您可以传递迭代的值,循环X次。这里不使用循环。