php - PHP 文件读写时遇到问题

标签 php html mysql

我正在做的首先是生成一个动态下拉框,其中显示页面名称。

然后我想要做的是根据下拉列表中选择的文件,将该文件加载到文本框中,然后当我提交更改时,新文件将包含文本框中的新文本。

这是我尝试过的:

   <select name="page_name">

                        <?php
                            include_once('lib/sql.php');
                            $sql = new sql();
                            $mysqli = new mysqli(blah);
                            /*$arr = array(
                               'cust_id' => "{$_SESSION['cust_id']}"
                            );
                            $query = $sql->select_query("code",$arr);
                            */
                            $query = "SELECT * FROM code";
                           $result = $mysqli->query($query);


                            while ($row = $result->fetch_assoc()) {
                              //var_dump($row['pagename']);
                            ?>
                                 <option name="<?php echo $row['pagename']; ?>" > <?php echo $row['pagename']; ?> </option>
                            <?php
                            } 
                            ?>

                       </select>
                   </td>
                <tr/>
                <tr>
                    <td>
                        <input type="submit" name="edit_page" Value="Select Page">
                    </td>
                </tr>
                 <tr>
                   <td>PHP/HTML CODE:</td>
                   <td>       
                   <?php
                   if(isset($_POST['page_name']) && $_POST['page_name'] != '' && isset($_POST['edit_page'])){
                      $_POST['page_name'] = $_SESSION['pgname'];
                      var_dump($_POST['page_name']);
                      //die();

                      if(isset($_POST['editcode']) && isset($_POST['commit_changes']))
                      {
                          file_put_contents("{$_SESSION['pgname']}","{$_POST['editcode']}");
                          header("Location: ".$_SERVER['PHP_SELF']);
                          //exit;
                      }
                      $text = file_get_contents("{$_SESSION['pgname']}");
                     echo " <textarea id='textarea_2' name='editcode' cols='90' rows='20'>";echo trim($text);echo "</textarea>";

                  ?>
                   </td>

有人可以帮忙吗? 谢谢

最佳答案

编辑:

<form method="post" action="subForm.php">    
<table>
    <tr>    
    <select name="page_name">
        <?php
        include_once('lib/sql.php');
        $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
        $query = "SELECT * FROM code";
        $result = $mysqli->query($query);
        while ($row = $result->fetch_assoc()) { ?>
            <option 
                name="page_name" 
                value="<?php echo $row['pagename']; ?>" 
            > 
                <?php echo $row['pagename']; ?> 
            </option>
        <?php } ?>
    </select>
    </td>
    <tr/>
    <tr>
        <td>
            <input type="submit" name="edit_page" Value="Select Page">

        </td>
    </tr>
</table>
</form>
<?php //here your other PHP code or to external file ?>

您的选项中没有表单,也没有值。 action 可以引导您的其他 PHP 代码检查数据并将其传递到 $_SESSION 中。

编辑2: 这是您的外部文件:

<table>
    <tr>
         <td>PHP CODE:</td>
    </tr>
    <tr>
         <td>
    <?php
    if(isset($_POST['page_name']) && $_POST['page_name'] != '' && isset($_POST['edit_page'])) {
        $_POST['page_name'] = $_SESSION['pgname'];
        var_dump($_POST['page_name']);    
        if(isset($_POST['editcode']) && isset($_POST['commit_changes'])) {
            file_put_contents("{$_SESSION['pgname']}","{$_POST['editcode']}"); // I dont know if this right, but ok.
            header("Location: ".$_SERVER['PHP_SELF']);
            //exit;
        }
        $text = file_get_contents("{$_SESSION['pgname']}");
        echo " <textarea id='textarea_2' name='editcode' cols='90' rows='20'>"; 
        echo trim($text); 
        echo "</textarea>";  ?>
        </td>
    </tr>
</table>

关于php - PHP 文件读写时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20284521/

相关文章:

php - setcookie,无法修改 header 信息 - header 已发送

php - 大型数据库最快的登录检查

php - PHP 和 Ajax 的进度条

html - 动画 SVG 直升机桨叶

javascript - JS : timeupdate unhide multiple divs at different times on same video, getElementbyId 问题?

mysql - MySQL语句中的ORDER BY分别为正数和负数

mysql - 日期时间字段的 bool 值

php - CakePHP 中的模型-> 别名和模型-> 名称有什么区别?

mysql - 如何连接表以选择连接表中的最大行?

php - 将多行插入表中