回显在页面源而不是页面中显示输出

时间:2019-03-12 06:42:57

标签: php

我用php创建了一个表格,并希望通过为php创建一个单独的文件在下拉选择菜单中显示ID。所以主文件中的代码是:

<?php include "functions.php";?>
<form action="login_update.php" method="post">
            <div class="form-group">
            <label for="username">username</label>
            <input type="text" name="username" class="form-control">
            </div>

            <div class="form-group">
            <label for="password">password</label>
            <input type="password" name="password" class="form-control">
            </div>

           <div class="form-group">
               <select name="id" id="">
                   <?php  

                        showAllData();
                   echo "<br>"."askfkldfjl;adfafladfdf";
                    ?>
               </select>
           </div>

            <input class="btn btn-primary" type="submit" name="submit" value="update">
       </form>

functions.php的代码是:

<?php 

function showAllData(){


    $connection = mysqli_connect('localhost','root','****','loginapp');
    if($connection){
        echo "We are connected. a=".$a."<br>";
    }else{
        die("Database connection failed");
    }
    $query = "SELECT * FROM users";
    $result = mysqli_query($connection,$query);
    if($result){
        echo("<br>"." <b><h6>We are successful</h6></b>");
    }
    else {        
        die("Query FAILED" . mysqli_error());
    }
    while($row = mysqli_fetch_assoc($result))  {
      $id = $row["id"];

      echo"<option value='$id'>$id</option>";


    }


}
?>

预期输出为: enter image description here

但是输出是: enter image description here

因此上述屏幕截图中的前两行没有打印。

这些行显示在铬的“检查元素”中。

enter image description here

我忘了提到echo命令:

echo "<br>"."askfkldfjl;adfafladfdf";

下面显示所有数据也不起作用。

3 个答案:

答案 0 :(得分:0)

您犯了一个错误。 实际上,您在selectbox中编写了一个代码,并且没有添加选项,因此这就是为什么它不在html中显示的原因 因此,编写如下代码,使其在选择框中显示为选项。

<div class="form-group">
               <select name="id" id="">
                  <option> <?php  

                        showAllData();
                   echo "<br>"."askfkldfjl;adfafladfdf";
                    ?></option>
               </select>
           </div>

如果要显示showAllData();函数的选项,则返回了html。

对于此更新,您的showAllData();函数使用以下代码:

function showAllData(){
     $options="";

    $connection = mysqli_connect('localhost','root','****','loginapp');
    if($connection){
        echo "We are connected. a=".$a."<br>";
    }else{
        die("Database connection failed");
    }
    $query = "SELECT * FROM users";
    $result = mysqli_query($connection,$query);
    if($result){
        echo("<br>"." <b><h6>We are successful</h6></b>");
    }
    else {        
        die("Query FAILED" . mysqli_error());
    }
    while($row = mysqli_fetch_assoc($result))  {
      $id = $row["id"];

      $options.="<option value='$id'>$id</option>";


    }
    return $options;

}

答案 1 :(得分:0)

PHP函数showAllData()移动到HTML <select>元素之前。 因为<select>元素正在等待<option>元素,但是所有其他文本将在页面上不可见。

例如:

   <div class="form-group">
       <?php showAllData(); ?>
   </div>

<?php 

function showAllData(){


    $connection = mysqli_connect('localhost','root','****','loginapp');
    if($connection){
        echo "We are connected. a=".$a."<br>";
    }else{
        die("Database connection failed");
    }
    $query = "SELECT * FROM users";
    $result = mysqli_query($connection,$query);
    if($result){
        echo("<br>"." <b><h6>We are successful</h6></b>");
    }
    else {        
        die("Query FAILED" . mysqli_error());
    }

    echo '<select name="id" id="">';
    while($row = mysqli_fetch_assoc($result))  {
      $id = $row["id"];

      echo"<option value='$id'>$id</option>";


    }
    echo "</select>";
}
?>

答案 2 :(得分:0)

您的代码混淆了。 您可以使用以下代码。创建一个数组,该数组为您提供需要在select中显示的值。

<?php 

function showAllData(){
    $idArr = array('msg'=>'','data'=>'','status'=>0);    
    $connection = mysqli_connect('localhost','root','****','loginapp');
    if($connection){
        $idArr['msg'] = "We are connected";
        $idArr['status'] = 1;
    }else{
        $idArr['msg'] = "Database connection failed"; 
        $idArr['status'] = 0;
    }
    if($idArr['status'] == 1){
        $query = "SELECT * FROM users";
        $result = mysqli_query($connection,$query);
        if($result){
            $idArr['msg'] = "We are successful";
            $idArr['status'] = 1;               
        }else {        
            $idArr['msg'] = "Query FAILED" . mysqli_error(); 
            $idArr['status'] = 0;  
        }
        if($idArr['status'] == 1){
            while($row = mysqli_fetch_assoc($result))  {
                 $idArr['data'][] = $row["section_id"];
            }
        }        
    }   
    return $idArr;
}
$idArr = showAllData();
?>

<?php 
if(!empty($idArr['data'])){
    echo "We are connected<br>";
    echo("<br>"." <b><h6>We are successful</h6></b>");
    ?>
    <form action="login_update.php" method="post">
            <div class="form-group">
            <label for="username">username</label>
            <input type="text" name="username" class="form-control">
            </div>

            <div class="form-group">
            <label for="password">password</label>
            <input type="password" name="password" class="form-control">
            </div>

           <div class="form-group">
               <select name="id" id="">
                   <option value="0">--Select--</option>
                   <?php 
                       foreach ($idArr['data'] as $key => $value) {
                           echo"<option value='$value'>$value</option>";
                       }
                   ?>
               </select>
           </div>

            <input class="btn btn-primary" type="submit" name="submit" value="update">
       </form>

<?php }else{
    echo $idArr['msg'];
}

?>