【问题标题】:I can't get the included variables. Why?我无法获得包含的变量。为什么?
【发布时间】:2021-11-13 12:22:59
【问题描述】:

如果我单击图片,我想创建一个弹出窗口。弹出窗口只是一个用 javascript “打开”的 div 框。我要九个盒子。所以我想我可以最小化代码,只使用一个 div 框并从数据库中获取值。 我有两个文件。首先是index.php。以下代码只是hole文件的一部分。

            <div id="modal_box" style="display: none;">
                <div id="modal_1" style="display: none;">
                  <span onClick="closeModal('modal_1')" class="close" id="close">&times;</span>
                    <text id="header_modal"><?php echo $ext_modalHeader; ?></text><br />
                    <text id="p_modal"><?php echo $ext_modalHUnderline; ?> <a href="<?php echo $ext_modalVerlinkung; ?>" target="_blank"><u><?php echo $ext_modalModel; ?></u></a></text>
                    <br /><br /><hr /><br /><br />
                  <div class="modal_content">
                    <table id="com">
                      <tr>
                        <td id="l">
                          <?php $modal_1_i = 0;

                          include("src/includes/evaluation.php");

                          $modal_1_state = $pdo->prepare("SELECT * FROM pictureManager WHERE pictureSession = :psession AND picturePlacement = 0");
                          $modal_1_state->execute(array("psession" => $ext_pictureSession));
                          while($modal_1 = $modal_1_state->fetch()) {
                            $modal_1_i++;

                            if($modal_1_i == 1) {
                              $startPicture = $modal_1['pictureSRC'];
                            }
                            ?>
                               <img onClick="bigit('modalpic_<?php echo $modal_1_i; ?>')" id="modalpic_<?php echo $modal_1_i; ?>" src="<?php echo $modal_1['pictureSRC']; ?>" style="width: 20%;" />
                            <?php
                          } ?>
                          <br /><br />
                          <div id="det">
                            <h2><?php echo $ext_gearHeader; ?></h2>
                            <p><?php echo $ext_gearDesc; ?></p>
                          </div>
                        </td>
                        <td id="r">
                            <img id="bigPicture" src="<?php echo $startPicture; ?>" style="width:80%; padding: 0;margin: 0;" />
                        </td>
                      </tr>
                    </table>
                  </div>
                </div>
              </div>

那就是evaluation.php文件,包含在index.php中

<?php
  session_start();

  $pdo = new PDO('mysql:host=localhost;dbname=databaseexample', 'xyz', '123');

  if(isset($_POST['id']) && !empty($_POST['id'])) {

    $evaluation_modid = $_POST['id'];

    $evaluation_mod_state = $pdo->prepare("SELECT * FROM mM WHERE pictureSession = :psession");
    $evaluation_mod_state->execute(array("psession" => $evaluation_modid));
    $evaluation_modRes = $evaluation_mod_state->fetch();

    if($evaluation_mod_state) {
      $ext_pictureSession = $evaluation_modRes['pictureSession'];
      $ext_modalHeader = $evaluation_modRes['modalHeader'];
      $ext_modalHUnderline = $evaluation_modRes['modalHUnderline'];
      $ext_modalVerlinkung = $evaluation_modRes['modalVerlinkung'];
      $ext_modalModel = $evaluation_modRes['modelName'];
      $ext_gearHeader = $evaluation_modRes['gearHeader'];
      $ext_gearDesc = $evaluation_modRes['gearBeschreibung'];
    } else {
      printf("err");
    }
  }

 ?>

如果我在evaluation.php 中打印$ext_... - 变量,我会得到正确的结果。但是如果我在 index.php 中打印它们,我不会得到正确的结果。为什么?

【问题讨论】:

  • $_POST['id'] 设置了吗?在包含文件之前,您使用 echo $ext_modalHeader; 和其他人。 &lt;text ... 应该做什么?
  • @brombeer $_POST['id'] 已设置。是的,我知道。这是行不通的。但是包含部分下的所有内容都应该工作(?)。 &lt;text&gt;... 确实有效。它只是一个个性化的标签。

标签: javascript php html variables


【解决方案1】:

如果我在evaluation.php 中打印$ext_... - 变量,我会得到正确的结果。但是如果我在 index.php 中打印它们,我不会得到正确的结果。为什么?

您似乎没有发送 POST 请求并且src/includes/evaluation.php 没有设置变量,因为if(isset($_POST['id']) &amp;&amp; !empty($_POST['id'])) { 条件。

或者$evaluation_mod_state 的值为false

【讨论】:

  • 我可以在控制台中打印 $_POST['id'] 变量。 100% 有效。
  • @Levi 很好,你能检查一下$evaluation_mod_state 的值吗?
  • 是的。设置为真。
  • @Levi 您是否在include 语句之后打印了 $ext_... - index.php 中的变量?我创建了一个小测试用例,您可以在控制台中执行它:echo '&lt;?php if (true) { $foo = "hi"; }' &gt; test_include.php 然后运行php -a 并在php 交互式shell 中输入include 'test_include.php'; echo $foo;。你应该收到hi 短信
  • 是的。如果我手动给它们一个值,我可以回显这些变量。在if($evaluation_mod_state) 查询之后,我获取了 $ext_gearDesc 变量并给了它们一个示例值,例如“test”。我可以毫无问题地在 index.php 中打印/回显它......这没有任何意义。我不明白这个。
猜你喜欢
  • 1970-01-01
  • 2011-11-23
  • 2017-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多