Bdevty
19.06.2008, 14:19:42
Mam pytanie. Piszę system newsów i przy edycji mam problem. Jak zrobić coś takiego żeby do formularza z tematem wstawiło obecny temat newsa czyli
odczytany z bazy. Próbowałem z textarea i input ale nic z tego. Jak można to zrobić ?
Shili
19.06.2008, 14:22:43
Jak odczytujesz wartości z bazy? Podziel się może aktualnie napisanym kodem?
Przy wyświetleniu tej otrzymanej wartości poprzez echo coś widać?
Jeśli tak, to tytuł jeśli jest w inpucie trzeba przypisać do atrybutu value="", albo wstawić między znaczniki textarea, jeśli z jakichś przyczyn chcesz textareę.
Jednak bez kodu niewiele więcej da się powiedzieć.
Bdevty
19.06.2008, 14:26:38
Cały kod wygląda tak:
<?php
if (!isset($_SESSION['admin'])) { header ("Location: admin.html"); }
else {
include ("main.php");
switch ($_GET['mod']) {
default: // Default
echo 'Yo, ' . $_SESSION['admin'];
break;
case 'addnews': // Add news
if (empty($_POST['subject']) && empty($_POST['news'])) { <form action="admin.php?mod=addnews" method="post">
<div id="form">
<label>Subject: <input type="text" name="subject" /></label>
<textarea name="news" rows="15" cols="40"></textarea>
<input type="submit" value="Add" />
</div>
</form>
</div>';
}
else {
$news= "INSERT INTO news (`subject`,`content`,`author`,`date`)
VALUES ('".trim($_POST['subject'])."','".trim($_POST['news'])."' ,'".$_SESSION['admin']."','$date');";
echo 'News has been added';
}
break;
case 'manage': //Manage news
$show= "SELECT subject,date,author,id FROM news
WHERE author='".$_SESSION['admin']."';";
echo '<form action="admin.php?mod=manage" method="post"> <div id="checkbox">
<input type="checkbox" name="select" value="" />'
.'<A href="admin.php?mod=editnews">' . $showall['subject']
. '</a>'. $showall['date'] . $showall['author']
. '</div>' . '</form>';
}
echo '<form action="admin.php?mod=manage" method="post"> <div id="submit">
<select name="sel">
<option value="Delete">Delete</option>
</select>
<input type="hidden" name="select" />
<input type="submit" value="OK" />
</div>
</form>';
if (count($_POST['select'])!== 0
) {
$delete= "DELETE FROM news WHERE `id`= '".$showall['author']."';";
echo 'Selected news has been deleted';
}
break;
case 'editnews': // Edit news
if (empty($_POST['editsubject']) && empty($_POST['editnews'])) {
$id= $showall['subject'];
<form action="admin.php?mod=editnews" method="post">
<div id="form">' .
'<label>Subject: <textarea name="editsubject">'
. $id . '</textarea>' . '</label>' .
'<textarea name="editnews" rows="15" cols="40">'. '</textarea>'
. '<input type="submit" value="Add" />'
. '</div>' . '</form>' . '</div>';
}
break;
} //end switch
} // end else
?>
Shili
19.06.2008, 14:35:40
Jeśli dobrze rozumiem, to pobieranie wyników z bazy masz tylko tam, gdzie mod jest manage. Gdy zamiast manage jest edit (czyli pewnie to, o co Ci chodzi) to w ogóle nie pobierasz nic z bazy. A skoro nie masz zapytania które zostanie pobrane nic dziwnego że zmienne są puste.
W tym casie również musisz mieć zapytanie i również musisz przypisać wynik tego zapytania do zmiennej.
Bdevty
19.06.2008, 14:47:21
Ok chodzi, ale mam jeszcze problem jeden. Jak ma wstawić do formularza temat newsa na który kliknąłem? Tzn jak takie zapytanie skonstruować żeby wstawiało ten temat newsa na który kliknąłem?
Shili
19.06.2008, 14:51:53
Przesyłasz dane przez get?
jeśli masz powiedzmy w adresie: strona.php?mod=edit&id=id_newsa
<?php
$query = 'SELECT subject FROM news WHERE id='.$id_newsa.'';
?>
Bdevty
19.06.2008, 14:58:25
Ok. Gdzie teraz mam wstawić tą zmienną id żeby przekazywała to id tzn do którego odnośnika- do tego co jest w modzie manage czy co?
Shili
19.06.2008, 15:03:35
Noż kurcze, pokombinuj. A jak pokombinujesz trochę sam i coś Ci nie będzie wychodzić, to daj znać jak to robisz (z kodem) i spytaj. Na logikę pewnie do tego, który ma w sobie mod=editnews, nie?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.