2014-11-30 2 views
0

Я хочу создать цифровую телефонную книгу, где я могу добавлять/удалять записи. Я могу добавить без проблем, но когда я пытаюсь удалить запись (за радио коробки), всегда последняя запись массива сеанса нет ...Проблема с телефонной книгой

телефонная книга: (index.php)

<?php 
 
session_start(); 
 
?> 
 
<html> 
 
\t <head> 
 
\t \t <title>2PLF</title> 
 
\t \t <style> 
 
\t \t \t table{ 
 
\t \t \t \t margin: 0 0 1rem 0; 
 
\t \t \t } 
 
\t \t \t table, table tr, table tr td{ 
 
\t \t \t \t border: 0.1rem solid #444; 
 
\t \t \t } 
 
\t \t \t table tr th{ 
 
\t \t \t \t border: 0.2rem solid #444; 
 
\t \t \t } 
 
\t \t </style> 
 
\t </head> 
 
\t <body> 
 
\t <form method="post"> 
 
\t \t <h1>My phonebook</h1> 
 

 
\t \t <?php 
 
\t \t if(isset($_POST["add"])){ 
 
\t \t \t header("location:new.php"); 
 
\t \t } 
 
\t \t if(isset($_SESSION["new"])){ 
 
\t \t 
 
\t \t \t foreach($_SESSION["new"] as $number => $name){ 
 
\t \t \t \t $_SESSION["phonebook"][$number] = $name; 
 
\t \t \t } 
 
\t \t \t 
 
\t \t \t //clean up 
 
\t \t \t unset($_SESSION["new"]); 
 
\t \t \t 
 
\t \t } 
 
\t \t 
 
\t \t if(isset($_SESSION["phonebook"])){ 
 
\t \t \t ?> 
 
\t \t \t <table> 
 
\t \t \t \t <tr> 
 
\t \t \t \t \t <th>Number</th> 
 
\t \t \t \t \t <th>Name</th> 
 
\t \t \t \t \t <th>Select</th> 
 
\t \t \t \t </tr> 
 
\t \t \t \t <?php 
 
\t \t \t \t foreach($_SESSION["phonebook"] as $number => $name){ 
 
\t \t \t \t \t echo '<tr> 
 
\t \t \t \t \t <td>'.$number.'</td> 
 
\t \t \t \t \t <td>'.$name.'</td> 
 
\t \t \t \t \t <td><input type="radio" name="radio"></td> 
 
\t \t \t \t \t </tr>'; 
 
\t \t \t \t \t 
 
\t \t \t \t } 
 
\t \t \t \t 
 
\t \t \t \t if(isset($_POST["delete"]) && isset($_POST["radio"])){ 
 
\t \t \t \t \t 
 
\t \t \t \t \t \t unset($_SESSION["phonebook"][$number]); 
 
\t \t \t \t \t \t header("location:index.php"); 
 
\t \t \t \t \t \t 
 
\t \t \t \t }else if(isset($_POST["delete"]) && !isset($_POST["radio"])){ 
 
\t \t \t \t \t \t echo "Please check your Input"; 
 
\t \t \t \t } 
 
\t \t \t \t 
 
\t \t \t \t ?> 
 
\t \t \t </table> 
 
\t \t \t <?php 
 
\t \t \t 
 
\t \t } 
 
\t \t ?> 
 
\t \t \t <input name="add" type="submit" value="Add a new number"> 
 
\t \t \t <input name="delete" type="submit" value="Delete an entry"> 
 
\t \t </form> 
 

 
\t </body> 
 
</html>

добавить запись (new.php)

<?php 
 
session_start(); 
 
?> 
 
<html> 
 
\t <head> 
 
\t \t <title>2PLF</title> 
 
\t </head> 
 
\t <body> 
 
\t 
 
\t \t <h1>Add an entry</h1> 
 
\t \t 
 
\t \t <?php 
 
\t \t \t $success = false; 
 
\t \t \t if(isset($_POST["name"]) && isset($_POST["number"])){ 
 
\t \t \t \t $success = true; 
 
\t \t \t \t $name = $_POST["name"]; 
 
\t \t \t \t $number = $_POST["number"]; 
 
\t \t \t \t 
 
\t \t \t \t $newEntry = array(
 
\t \t \t \t \t $number => $name, 
 
\t \t \t \t); 
 
\t \t \t \t 
 
\t \t \t \t //put the array in a session array 
 
\t \t \t \t $_SESSION["new"] = $newEntry; 
 
\t \t \t \t 
 
\t \t \t } 
 
\t \t ?> 
 
\t \t 
 
\t \t <form method="post"> 
 
\t \t \t <input name="name" type="text" value="" placeholder="Name"> 
 
\t \t \t <input name="number" type="text" value="" placeholder="Phone number"> 
 
\t \t \t <input type="submit" value="Add entry"> 
 
\t \t </form> 
 
\t \t 
 
\t \t <?php 
 
\t \t if($success == true){ 
 
\t \t \t if($name == "" || $number == ""){ 
 
\t \t \t \t echo "Please enter a valid name and number"; 
 
\t \t \t }else{ 
 
\t \t \t \t header("location:index.php"); 
 
\t \t \t } 
 
\t \t } 
 
\t \t ?> 
 
\t \t 
 
\t </body> 
 
</html>

Обратите внимание, что все радиокамера должна иметь то же имя. Я знаю, что в index.php есть немного кусочка неправильного кода, но я не могу найти ...

Спасибо!

+0

Header не может работать, потому что выход уже отправлен – DLastCodeBender

ответ

0

Вы должны передать личность записи с помощью радио.

<input type="radio" name="radio" value="'.$number.'"> 
+0

oh спасибо, я не могу beleve, что я забыл сделать это :) –

Смежные вопросы