PHP的回应.第二个isset()调用不起作用


PHP response. Second isset() call not working

我有一个简单的PHP代码,查询数据库并返回一个列表,其中包括一个新的提交按钮,这将批准或不批准post

 if(isset($_POST['search'])){
while($row = mysqli_fetch_array($select)) {
  if($row['flag']==0) {
    echo "<br>";
    echo "<div class='"dlcontainer2'">"; 
    echo "<div class='"dlitem'">"; 
    echo "TourID: ";
    echo "<div class='"dltourID'">{$row['tourID']}</div>"; 
    echo "Title: ";
    echo "<div class='"dltitle'">{$row['title']}</div>"; 
    echo "City: ";
    echo "<div class='"dlcity'">{$row['city']}</div>";
    echo "Description: ";
        echo "<div class='"dldescription'">{$row['description']}</div>"; 
    //echo "<div class='"dlapprove'">;
    echo "<input class=approve type='submit' name='submit' id=approve value='Approve'>"; 
    echo "</div>"; 
    echo "</div>"; 
    echo "<br>";
  }
}
}

就在它的下面,我制作了另一个isset()来查看用户是否点击了Approve按钮。但是它什么也没做:

if(isset($_POST['submit']) && !empty($_POST)) {
    echo "<script type='text/javascript'>alert('$message');</script>";
} else{
    echo "No true";
}

我认为你的问题不是isset()而是!空($_POST)我不相信$_POST在它自己的返回任何东西。

可以尝试使用!empty($_POST['submit']),这看起来就像你的代码要做的。

首先,你可以用这个神奇的Heredoc代替许多echo

echo <<<"MyText"
<br>
<div class='"dlcontainer2'">
    <div class='"dlitem'">
        TourID: 
        <div class='"dltourID'">{$row['tourID']}</div>
        Title: 
        <div class='"dltitle'">{$row['title']}</div>
        City: 
        <div class='"dlcity'">{$row['city']}</div>
        Description: 
        <div class='"dldescription'">{$row['description']}</div>
        <div class='"dlapprove'">
            <input class=approve type='submit' name='submit' id=approve value='Approve'>
        </div>
    </div>
<br>
MyText;

第二,您在第二个IF-Statement中使用了额外的不必要的条件。

应该是这样的:

if(isset($_POST['submit'])) { // or you can use $_POST['submit'] or !empty($_POST['submit']) or even $_POST
    echo "<script type='text/javascript'>alert('$message');</script>";
} else{
    echo "No true";
}