Php 当用户点击post时,为什么变量会在它应该改变之前改变?
我有一个变量,当用户单击post时,它似乎会改变。我读过那篇文章,GET应该位于php页面的顶部,但我不能这样做,因为我需要来自DirecortyTreediator的变量来处理这篇文章。因此directorytreeiterator在POST之前,按钮也在POST之前,但仅此而已 发生的情况是,当用户单击post时,它应该使用变量来执行mysql语句。但是通过检查,当用户点击按钮并启动post时,在启动语句之前,变量被设置为以下页面的值。我原以为帖子里的脚本会在新页面加载之前执行,但我看到的不是这个。以下是代码,按从上到下的顺序排列:Php 当用户点击post时,为什么变量会在它应该改变之前改变?,php,Php,我有一个变量,当用户单击post时,它似乎会改变。我读过那篇文章,GET应该位于php页面的顶部,但我不能这样做,因为我需要来自DirecortyTreediator的变量来处理这篇文章。因此directorytreeiterator在POST之前,按钮也在POST之前,但仅此而已 发生的情况是,当用户单击post时,它应该使用变量来执行mysql语句。但是通过检查,当用户点击按钮并启动post时,在启动语句之前,变量被设置为以下页面的值。我原以为帖子里的脚本会在新页面加载之前执行,但我看到的不
<button type="submit" form="form1" name="atoz" value="atoz">A to Z</button>
echo $var; //at this stage $var = images
if(isset($_POST['atoz']))
{
$sort_by = "atoz" ;
echo $var; //at this stage $var seems to be a value of another directory that is expected only after page reloads
$sort = 1;
$stmt = $mysqli->prepare("UPDATE ".$tablename." SET sort_by=? WHERE sort=? AND sort_folder=? ") ;
$stmt->bind_param(" sis", $sort_by, $sort, $var) ;
$stmt->execute() ;
$stmt->close() ;
echo "<meta http-equiv='refresh' content='0'>" ; //loads new page where the $var should change to another directory
}
A到Z
echo$var//在此阶段,$var=images
如果(isset($_POST['atoz']))
{
$sort_by=“atoz”;
echo$var;//在这个阶段,$var似乎是另一个目录的值,只有在页面重新加载之后才需要它
$sort=1;
$stmt=$mysqli->prepare(“更新“$tablename.”设置排序依据=?其中排序=?和排序文件夹=?”;
$stmt->bind_参数(“sis”、$sort_by、$sort、$var);
$stmt->execute();
$stmt->close();
echo”“;//加载$var应更改为其他目录的新页面
}
因此$var应该有一个“images”值,但是当用户通过一些测试点击post时,该值似乎是它在下一个页面上的值,下一个页面是另一个目录(加载http equiv时,该页面会重新加载默认页面)。但这似乎不符合规定
另外,当我将$var设置为post括号内的“images”时,它也可以工作。这意味着我的sql语句工作得很好。为什么在执行更改变量的代码之前,变量会发生这样的更改?为你的帮助干杯 提交后,$var更改为什么?当按钮提交时,它将变量更改为im请求的值,并更改为页面加载时最初设置的值。该代码是一个目录结构,因此,当该代码执行时,它将显示名为images的文件夹中的内容。但是$var似乎更改为在原始页面加载上设置的值,即名为“folder”的初始文件夹。