使用php删除div框

时间:2014-07-30 12:05:11

标签: php html

我正在尝试从.txt文件中删除div框 但它会删除所有文件..

addtodos.php

function getTodos($userID) {
    if (!file_exists("./data/todos/$userID.txt")) {
        file_put_contents("./data/todos/$userID.txt", "", FILE_APPEND);
    }

    $wholeFile = file_get_contents("./data/todos/$userID.txt");
    $allLines = explode(PHP_EOL, $wholeFile);

    for($i = 0; $i < count($allLines) - 1; $i++) {
        $contactValues = explode("|", $allLines[$i]);
        $todos = new stdClass;
        $todos->todosID = trim($contactValues[0]);
        $todos->currentDate = trim($contactValues[1]);
        $todos->text = trim($contactValues[2]);
        $allTodos[] = $todos;
    }

    if(isset($allTodos)) {
        return $allTodos;
    }
}


function deletTodo ($userID, $ID) {
    $todos = getTodos($userID);

    file_put_contents("data/todos/$userID.txt" , "" );

    $ChangeIDs = 0;
    for ($i = 0; $i < count($todos); $i++) {
        if($todos[$i]->contactID == $ID) {
            $ChangeIDs = 1;
        }

        else{
        $todosID = $todos[$i]->todosID - $ChangeIDs;
        $todosDate = $todos[$i]->currentDate;
        $todosText = $todos[$i]->text;

        $newContactDetails = $todosID ." | ". $todosDate ." | ". $todosText;
        file_put_contents("data/todos/$userID.txt" , $newContactDetails.PHP_EOL , FILE_APPEND );
        }
    }
}

deletTodos.php

<?php 
    session_start();

    include "Model/addTodos.php";

    $userID = $_SESSION["userID"];

    $todosID=$_POST["todosID"];
    deletTodo ($userID, $todosID);
    header("location: todos.php");

?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>

</body>
</html>

todos.php

<?php
    session_start();
    unset($_SESSION["rand"]);
    unset($_SESSION["count"]);

    include "Model/user.php";
    include "Model/addTodos.php";

    if(isset($_SESSION["userID"]) == false) {
        header("Location: login.php");
    }
    $userID = $_SESSION["userID"];
    $allUsers = getUsers();
    $userName = $allUsers[$userID-1]->username;
    $userPoints = $allUsers[$userID-1]->points;

    $todos = getTodos($userID);
    $NextTodosId = getNextTodosId($userID);

    date_default_timezone_set("asia/jerusalem");
    $date = date("F j, Y, g:i a");


    if(isset($_POST["todos"])) {

        // Validation......

        $text = $_POST["todos"];
        $contact2Save = "$NextTodosId | $date | $text" . PHP_EOL;
        file_put_contents("Data/todos/$userID.txt", $contact2Save, FILE_APPEND);

        header("Location: todos.php");
    }
?>
<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="css.css" />
</head>
<body>

    <div class="header">
        <div class="leftHeader">
            <a href="index.php">Home</a> | 
            <a href="chat.php">Chat</a> | 
            <a href="numGuess.php">Guessing Game</a> | 
            <a href="calc.php">Calculator</a> | 
            <a href="todos.php">Todos</a>
        </div>
        <div class="rightHeader">
            <h3>
                Hello <?php echo"<div class=\"userName\">$userName ($userPoints points)</div>"; ?>
                <a href="logout.php">Logout</a>
            </h3>
        </div>
    </div>

    <div class="content">
        <div class="todosbox2">
            <form method="POST" action="todos.php">
                <input type="text" name="todos" class="todos" placeholder="Enter new mission">
                <input type="submit" value="Add" class="numGuessSubmit" name="submitCalculate">
            </form>
            </div>
            <div class="todosbox">
                <?php
                    for($i = 0; $i < count($todos); $i++) {
                    $todosID = $todos[$i]->todosID;
                    $todosDate = $todos[$i]->currentDate;
                    $todosText = $todos[$i]->text;


                    echo "<div class=\"todo1\">
                                &lt$todosDate&gt;<br/>
                                <h3><b>$todosText</b></h3><br/>
                                <a href=\"doneTodos.php\">Done</a> | 
                                <a href=\"deletTodos.php?todosID=$todosID\">Delete</a>
                            </div>";
                    }

                ?>
        </div>
    </div>

</body>
</html>

我的文字文件:

1 | 2014年7月13日,下午7:26 | asdsd
2 | 2014年7月13日,下午7:39 | asdasd
3 | 2014年7月13日,下午7:40 | ASDA

1 个答案:

答案 0 :(得分:0)

file_put_contents("data/todos/$userID.txt" , "" );

你的函数deletTodo中apptodos.php中的这一行负责你的空文件。评论或删除该行。

如果你想删除一行,你必须得到你的txt文件,如&#34; function getTodos($ userID)&#34;并遍历每一行。在迭代时,您可以检查&#34; $ todosID&#34;。如果您发现带有ID的行只是跳到下一行,那么您就不会读取并保存它。在文件末尾使用file_put_content并将其全部写回txt文件。

也许您有可能为此选择数据库。使用数据库然后使用文件系统要容易得多。

未经测试的例子:

function deletTodo ($userID, $todosID) {
    $wholeFile = file_get_contents("./data/todos/$userID.txt");
    $allLines = explode(PHP_EOL, $wholeFile);
    $allTodos = array();

    for($i = 0; $i < count($allLines) - 1; $i++) {
        $contactValues = explode("|", $allLines[$i]);
        $todos = new stdClass;
        if (trim($contactValues[0]) == $todosID) 
          continue;
        $todos->todosID = trim($contactValues[0]);
        $todos->currentDate = trim($contactValues[1]);
        $todos->text = trim($contactValues[2]);
        $allTodos[] = $todos;
    }

    file_put_contents("data/todos/$userID.txt" ,  print_r($allTodos, true));
}