Generic placeholder image

Error Todo App menampilkan list

Ditanyakan pada tanggal 8 January 2019 oleh Jaka Perdana

pada kode dibawah ini hasilnya error, errornya Fatal error: Uncaught Error: Cannot use object of type stdClass as array in C:\xampp\htdocs\phpcodepolitan\TodoApp\TampilList.php:34 Stack trace: #0 {main} thrown in C:\xampp\htdocs\phpcodepolitan\TodoApp\TampilList.php on line 34

<?php
$todos = [];
if(file_exists('todo.txt')){
    $file = file_get_contents('todo.txt');
    $todos = json_decode($file);
}

if(isset($_POST['todo'])){
    $data = $_POST['todo'];
    $todos[] = 
    [
        'todo' => $data,
        'status' => 0
    ];

    file_put_contents('todo.txt', json_encode($todos));
}

?>

<h2>To Do App</h2>

<form method="POST">
    <label>Apa yang mau Anda lakukan hari ini?</label><br>
    <input type="text" name="todo">
    <input type="submit" value="submit">
</form>

<ul>
    <label><strong>To Do :</strong></label><br>
        <?php foreach ($todos as $key => $value) : ?>
        <li>
            <input type="checkbox" name="todo">
            <label><?php echo $value['todo'] ; ?></label>
            <a href="#">delete</a>
        </li>
        <?php endforeach ; ?>

</ul>

yang mau saya tanyakan StdClass di baris 34 yg mana ya ? saya tidak paham kan tidak pakai oop disini, kenapa dibilang kelas kosong? baris 34 adalah<label><?php echo $value['todo'] ; ?></label>

1 JAWABAN

Generic placeholder image
Muhammad Alif menjawab pada tanggal 9 January 2019

hai jaka, silahkan modifikasi kode programmu seperti

<?php
$todos = [];
if(file_exists('todo.txt')){
    $file = file_get_contents('todo.txt');
    $todos = unserialize($file);
}

if(isset($_POST['todo'])){
    $data = $_POST['todo'];
    $todos[] = 
    [
        'todo' => $data,
        'status' => 0
    ];

    file_put_contents('todo.txt', serialize($todos));
}

?>

<h2>To Do App</h2>

<form method="POST">
    <label>Apa yang mau Anda lakukan hari ini?</label><br>
    <input type="text" name="todo">
    <input type="submit" value="submit">
</form>

<ul>
    <label><strong>To Do :</strong></label><br>
        <?php foreach ($todos as $key => $value) : ?>
        <li>
            <input type="checkbox" name="todo">
            <label><?php echo $value['todo']; ?></label>
            <a href="#">delete</a>
        </li>
        <?php endforeach ; ?>

</ul>

gunanakan serialize dalam menyimpan datanya karena serialize menghasilkan representasi nilai yang dapat disimpan. Ini berguna untuk menyimpan atau meneruskan nilai-nilai PHP tanpa kehilangan jenis dan strukturnya.