【问题标题】:Cant read if else condition无法读取 if else 条件
【发布时间】:2018-10-17 23:23:54
【问题描述】:

我有一个代码,用于显示使用 boostrap 和 codeigniter 的 ajax 输出。我的程序的功能是当我按下按钮上传并选择文件时,它会自动上传。如果文件是图片,它会显示刚刚上传的图片,如果刚刚上传的文件不是图片,它会显示字体awesome。代码在撇号之间有 if else 条件。这是我的代码

$output .='
                    <div>
                      <ul class="detail-attachments clearfix">
                        <?php
                          foreach ($list_file as $file) { ?>
                            <li id="datas">
                              <?php
                                if ($file["tipe"]=="image/jpeg" or $file["tipe"]=="image/bmp" or $file["tipe"]=="image/png") { ?>
                                  <span class="detail-attachment-icon has-img">
                                    <a href="'.base_url().'assets/files/file_materi/'.$data["file_name"].'" target="_blank">
                                      <img src="'.base_url().'assets/files/file_materi/'.$data["file_name"].'">
                                    </a>
                                  </span>
                                <?php }
                                else { ?>
                                  <span class="detail-attachment-icon"><i class="fa fa-file-o"></i></span>
                                  <div id="nama_filenya">

                                    <?php 
                                      echo $data["file_name"];
                                      ?>
                                  </div>
                                <?php }
                              ?>
                              <div class="detail-attachment-info">
                                <button type="button" class="btn btn-danger btn-block btn-sm" data-toggle="modal" data-target="#konfirmasi_hapus<?php echo $data["id_file_materi"]; ?>">Hapus</button>
                                </a>
                              </div>
                            </li>

                          <?php }
                        ?>
                      </ul>
                    </div>
                ';

但是当我运行我的代码并尝试上传文件时,if else 函数没有运行。当我选择文件时,文件被自动上传,但显示的是文件、字体真棒图标和按钮。当我看到检查元素时,代码 php 函数变成如下注释

<div>
                    <ul class="detail-attachments clearfix">
                      <!--?php
                        foreach ($list_file as $file) { ?-->
                          <li id="datas">
                            <!--?php
                              if ($file["tipe"]=="image/jpeg" or $file["tipe"]=="image/bmp" or $file["tipe"]=="image/png") { ?-->
                                <span class="detail-attachment-icon has-img">
                                  <a href="http://localhost/ci_sc/assets/files/file_materi/camila-cabello-wonderland7.jpg" target="_blank">
                                    <img src="http://localhost/ci_sc/assets/files/file_materi/camila-cabello-wonderland7.jpg">
                                  </a>
                                </span>
                              <!--?php }
                              else { ?-->
                                <span class="detail-attachment-icon"><i class="fa fa-file-o"></i></span>
                                <div id="nama_filenya">
                                  <!--?php 
                                    echo $data["file_name"];
                                    ?-->
                                </div>
                              <!--?php }
                            ?-->
                            <div class="detail-attachment-info">
                              <button type="button" class="btn btn-danger btn-block btn-sm" data-toggle="modal" data-target="#konfirmasi_hapus<?php echo $data[" id_file_materi"];="" ?="">"&gt;Hapus</button>

                            </div>
                          </li>

                        <!--?php }
                      ?-->
                      <!-- <li id="upload_files"></li> -->
                    </ul>
                  </div>

谁能帮我解决我的问题,以便系统可以读取php函数。

提前谢谢你

【问题讨论】:

  • 字符串中不能有 if 条件。更不用说 foreach...
  • 您将不得不像output = "abc"; if(x) { $output .= "def" } 等那样将其拆分......

标签: php codeigniter if-statement


【解决方案1】:

您可以使用输出缓冲区来整理您的代码。

<?php
ob_start();
?>
<div>
  <ul class="detail-attachments clearfix">
    <?php
	  foreach ($list_file as $file) { ?>
      <li id="datas">
        <?php
			if ($file["tipe"]=="image/jpeg" or $file["tipe"]=="image/bmp" or $file["tipe"]=="image/png") { ?>
          <span class="detail-attachment-icon has-img">
				<a href="'.base_url().'assets/files/file_materi/'.$data["file_name"].'" target="_blank">
				  <img src="'.base_url().'assets/files/file_materi/'.$data["file_name"].'">
				</a>
			  </span>
          <?php }
			else { ?>
          <span class="detail-attachment-icon"><i class="fa fa-file-o"></i></span>
          <div id="nama_filenya">

            <?php 
				  echo $data["file_name"];
				  ?>
          </div>
          <?php }
		  ?>
          <div class="detail-attachment-info">
            <button type="button" class="btn btn-danger btn-block btn-sm" data-toggle="modal" data-target="#konfirmasi_hapus<?php echo $data[" id_file_materi "]; ?>">Hapus</button>
            </a>
          </div>
      </li>

      <?php }
	?>
  </ul>
</div>
<?php
$output = ob_get_clean();
?>

【讨论】:

    【解决方案2】:

    你有几个选择:

    • 您可以在每次添加 HTML sn-p 时使用“.=" 运算符连接字符串
    • 您可以使用输出缓冲,它会简单地将您输出的所有内容放入一个变量中
    • 我什至不会谈论e̵͍̘͝v̴̩͙̆̕a̷̢̋l̶̲̅(̵̭̍)̶̤̱̗̔̕

    我个人发现输出缓冲清洁器。这是您的代码示例:

    <?php
    ob_start(); ?>
        <div>
            <ul class="detail-attachments clearfix">
                <?php
                foreach ($list_file as $file) { ?>
                    <li id="datas">
                        <?php
                        if ($file["tipe"]=="image/jpeg" or $file["tipe"]=="image/bmp" or $file["tipe"]=="image/png") { ?>
                            <span class="detail-attachment-icon has-img">
                                <a href="<?php echo base_url() ?>assets/files/file_materi/<?php echo $data["file_name"] ?>" target="_blank">
                                    <img src="<?php echo base_url() ?>assets/files/file_materi/<?php echo $data["file_name"] ?>">
                                </a>
                            </span>
                        <?php }
                        else { ?>
                            <span class="detail-attachment-icon"><i class="fa fa-file-o"></i></span>
                            <div id="nama_filenya">
    
                                <?php
                                echo $data["file_name"];
                                ?>
                            </div>
                        <?php }
                        ?>
                        <div class="detail-attachment-info">
                            <button type="button" class="btn btn-danger btn-block btn-sm" data-toggle="modal" data-target="#konfirmasi_hapus<?php echo $data["id_file_materi"]; ?>">Hapus</button>
                            </a>
                        </div>
                    </li>
    
                <?php }
                ?>
            </ul>
        </div>
    <?php
    $output = ob_get_clean();
    

    否则您将不得不执行以下操作:

    <?php
    $output =
        '<div>
            <ul class="detail-attachments clearfix">';
    foreach ($list_file as $file) {
        $output .= '<li id="datas">';
        if ($file["tipe"]=="image/jpeg" or $file["tipe"]=="image/bmp" or $file["tipe"]=="image/png") {
            $output .= '<span class="detail-attachment-icon has-img">
                <a href="'.base_url().'assets/files/file_materi/'.$data["file_name"].'" target="_blank">
                                    <img src="'.base_url().'assets/files/file_materi/'.$data["file_name"].'">
                                </a>
                            </span>';
        }
        else {
            $output .= '<span class="detail-attachment-icon"><i class="fa fa-file-o"></i></span>
                            <div id="nama_filenya">
                                '.$data["file_name"].'
                            </div>';
        }
    
        $output .= '<div class="detail-attachment-info">
                            <button type="button" class="btn btn-danger btn-block btn-sm" data-toggle="modal" data-target="#konfirmasi_hapus'.$data["id_file_materi"].'">Hapus</button>
                            </a>
                        </div>
                    </li>';
    
    }
    $output .= '
            </ul>
        </div>';
    

    【讨论】:

      猜你喜欢
      • 2021-08-31
      • 2022-06-15
      • 1970-01-01
      • 1970-01-01
      • 2014-11-16
      • 1970-01-01
      • 1970-01-01
      • 2019-07-01
      • 1970-01-01
      相关资源
      最近更新 更多