| Schrijver |
Bericht |
Ajax Forum Lid
447 posts |
# Geplaatst: 9 Mar 2010 18:00 · Aangepast door: Ajax
Hallo, daar ben ik weer ;
Ik heeb een nieuwsscript proberen te schrijven waarin ik een pagina heb dat ik records uit een MYSQL database kan wijzigen, dat is deze:
php code<?php
$actie = $_POST['submit'];
if ($actie=="submit") {
$onderwerp = $_POST['o'];
$datum = date("d.m.Y H:i:s");
$dbhost = "localhost";
$dbuser = "root";
$dbpaswoord = "";
$dbdatabase = "stephan";
$db = mysql_connect($dbhost, $dbuser, $dbpaswoord);
mysql_select_db($dbdatabase, $db);
$sql = "SELECT * FROM nieuws WHERE onderwerp = '".$onderwerp."'";
$resultaat = mysql_query($sql) or die ("query mislukt");
$row = mysql_fetch_array($resultaat);
if(!empty($row)){
if(empty($_POST['b'])){
echo "<form name=\"update\" method=\"post\" action=\"".$PHP_SELF."\">
<br>Voer het nieuwe bericht in:<textarea rows=\"20\" cols=\"45\" name=\"b\"></textarea><br>
<input type=\"submit\" name=\"submit2\" value=\"verander\"></form>";
}
else {
$bericht = $_POST['b'];
$onderwerp = $_POST['o'];
$update = "UPDATE nieuws SET bericht = '".$bericht."' WHERE onderwerp = '".$onderwerp."'";
$query = mysql_query($update) or die ("query mislukt");
echo "Het is gelukt!";
}
}
else {
echo "Onderwerp is niet gevonden";
}
}
else {
echo "<form name=\"change\" method=\"post\" action=\"".$PHP_SELF."\">
Welk Onderwerp wilt u aanpassen?:<br>
<input type=\"text\" name=\"o\">
<br>
<input type=\"submit\" name=\"submit\" value=\"submit\">
</form>";
}
?>
Zoals jullie kunnen zien, moet eerst het onderwerp gevonden worden in de database en dan kan men het bericht aanpassen.'
Als ik nu op de knop verander heb gedrukt om de tekst te veranderen spring de pagina weer terug naar waar ik het onderwerp kan invullen.
Wie o wie heeft een oplossing?
|
| |
|
jwvos Forum Lid
1391 posts |
# Geplaatst: 10 Mar 2010 13:06 · Aangepast door: jwvos
Gebruik bij alle2 de forms eens: action="" ipv action=\"".$PHP_SELF."\"
Kijk hier maar eens: http://www.sitemasters.be/forum/1/26542 .
$PHP_SELF werkt dus alleen in de oudere versies van PHP.
Tijd geleden dat ik op html site zat, effe wennen ^^
|
PaulG Forum Lid
195 posts |
# Geplaatst: 10 Mar 2010 14:10
Hij update niet omdat je geen onderwerp hebt bij de update! Dus bij de velden voor invullen bericht moet je ook onderwerp weer in het form submitten (hidden veld)
|
Ajax Forum Lid
447 posts |
# Geplaatst: 10 Mar 2010 14:11
Nee helpt ook niet...
|
Ajax Forum Lid
447 posts |
# Geplaatst: 10 Mar 2010 14:12
Zal het proberen Paul
|
Ajax Forum Lid
447 posts |
# Geplaatst: 10 Mar 2010 14:15
Nee ook dat helpt niet
|
PaulG Forum Lid
195 posts |
# Geplaatst: 10 Mar 2010 15:12
if ($actie=="submit")
je hebt ook een submit knop die submit2 heet !!!
|
Sgrovert Forum Lid
50 posts |
# Geplaatst: 10 Mar 2010 15:13
Je hebt 2 verschillende formulieren. Op het moment dat je met het eerste forumulier je onderwerp invult is er niks aan de hand, en opend het tweede formulier.
Als je daarna in het tweede formulier iets invult, vergeet het systeem de post uit het eerst formulier.
$onderwerp is daarna leef, en het systeem kan je onderwerp niet meer vinden. Hierdoor word het eerst formulier weer getoont.
|
Ajax Forum Lid
447 posts |
# Geplaatst: 10 Mar 2010 17:16
Oke, heb het 1 en ander aan lopen passen, maar nog geen resultaat.
hier de nieuwe code:
php code<?php
$actie = $_POST['actie'];
if ($actie=="login") {
$onderwerp = $_POST['o'];
$datum = date("d.m.Y H:i:s");
$dbhost = "localhost";
$dbuser = "root";
$dbpaswoord = "";
$dbdatabase = "stephan";
$db = mysql_connect($dbhost, $dbuser, $dbpaswoord);
mysql_select_db($dbdatabase, $db);
$sql = "SELECT * FROM nieuws WHERE onderwerp = '".$onderwerp."'";
$resultaat = mysql_query($sql) or die ("query mislukt");
$row = mysql_fetch_array($resultaat);
if(!empty($row)){
if(empty($_POST['b'])){
echo "<form name=\"update\" method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">
<br><input type=\"text\" name=\"subject\">
<br>Voer het nieuwe bericht in:<textarea rows=\"20\" cols=\"45\" name=\"b\"></textarea><br>
<input type=\"submit\" name=\"verzend\" value=\"verander\"></form>";
}
else {
$bericht = $_POST['b'];
$subject = $_POST['subject'];
$update = "UPDATE nieuws SET bericht = '".$bericht."' WHERE onderwerp = '".$subject."'";
$query = mysql_query($update) or die ("query mislukt");
echo "Het is gelukt!";
}
}
else {
echo "Onderwerp is niet gevonden";
}
}
else {
echo "<form name=\"change\" method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">
Welk Onderwerp wilt u aanpassen?:<br>
<input type=\"hidden\" name=\"actie\" value=\"login\" />
<input type=\"text\" name=\"o\">
<br>
<input type=\"submit\" name=\"submit\" value=\"submit\">
</form>";
}
?>
|
PaulG Forum Lid
195 posts |
# Geplaatst: 11 Mar 2010 06:41
Zelfde probleem.
if ($actie=="login") {
bij het tweede formulier heb je geen post actie met 'login' dus na het bericht invoeren komt hij niet langs dit IF statement en dus kan het niet geupdate worden.
|
Ajax Forum Lid
447 posts |
# Geplaatst: 11 Mar 2010 15:18
Dat heb ik wel
php code<input type=\"hidden\" name=\"actie\" value=\"login\" />
|
PaulG Forum Lid
195 posts |
# Geplaatst: 12 Mar 2010 06:31
php codeif(empty($_POST['b'])){
echo "<form name=\"update\" method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">
<br><input type=\"text\" name=\"subject\">
<br>Voer het nieuwe bericht in:<textarea rows=\"20\" cols=\"45\" name=\"b\"></textarea><br>
<input type=\"submit\" name=\"verzend\" value=\"verander\"></form>";
}
else {
wijs het hier eens aan dan....
|
Ajax Forum Lid
447 posts |
# Geplaatst: 12 Mar 2010 13:48
aah ik snap je opvatting, oke
|
Sgrovert Forum Lid
50 posts |
# Geplaatst: 12 Mar 2010 23:32
Buiten het feit dat je ongelooflijk waardeloze naamgeving voor je variabelen hebt, zal je in de code die PaulG geeft hetvolgende bij moeten plaatsen:
<input type=\"hidden\" name=\"b\" value=\"$_POST['b']\">
Als het goed is moet het daarna blijven werken.
|