1 knop voor 2 queries?
Ik heb op mijn pagina 2 textareas met elke een eigen "Opslaan" knop. Nu is het dus zo dat als je in textarea A tekst plaatst je niet met knop B kunt updaten. Hoe pas ik dit aan?
Knop A:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<input type=\"submit\" name=\"submit\" value=\"Opslaan\">
<input type=\"hidden\" name=\"editid\" value=\"".$editactie_titel['id']."\">";
if($result==1)
{
echo "<font style=\"color: #1e620c;\">Opgeslagen</font>";
}
<input type=\"hidden\" name=\"editid\" value=\"".$editactie_titel['id']."\">";
if($result==1)
{
echo "<font style=\"color: #1e620c;\">Opgeslagen</font>";
}
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
if ($_POST['submit'] == "Opslaan" && $editactie_titel > 0)
{
$query = "UPDATE $tab_teksten SET tekst='$tekst' WHERE id='$editid'";
$result = mysql_query($query);
echo "<script language=\"javascript\">location.href='editactie.php';</script>";
}
{
$query = "UPDATE $tab_teksten SET tekst='$tekst' WHERE id='$editid'";
$result = mysql_query($query);
echo "<script language=\"javascript\">location.href='editactie.php';</script>";
}
Knop B
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<input type=\"submit\" name=\"submit\" value=\"Opslaan\">
<input type=\"hidden\" name=\"editid\" value=\"".$editactie_tekst['id']."\">";
if($result==1)
{
echo "<font style=\"color: #1e620c;\">Opgeslagen</font>";
}
<input type=\"hidden\" name=\"editid\" value=\"".$editactie_tekst['id']."\">";
if($result==1)
{
echo "<font style=\"color: #1e620c;\">Opgeslagen</font>";
}
Code (php)
1
2
3
4
5
6
2
3
4
5
6
if ($_POST['submit'] == "Opslaan" && $editactie_tekst > 0)
{
$query = "UPDATE $tab_teksten SET tekst='$tekst' WHERE id='$editid'";
$result = mysql_query($query);
echo "<script language=\"javascript\">location.href='editactie.php';</script>";
}
{
$query = "UPDATE $tab_teksten SET tekst='$tekst' WHERE id='$editid'";
$result = mysql_query($query);
echo "<script language=\"javascript\">location.href='editactie.php';</script>";
}
Toevoeging op 01/08/2012 14:55:29:
Ik ben nog beginner en met jullie hulp zal dit vast wel een te snelle manier zijn. Ik heb laatst om te starten een tweetal boeken gekocht om meer te leren over PHP. Ik ben daar goed in bezig, maar als ik deze pagina afmaak kan ik deze website afronden en wil dat graag alvast af hebben. Zodat ik met mijn "lessite" kan beginnen :)
Door er twee formulieren van te maken.
Ferdi Verbeek op 01/08/2012 14:53:46:
Ik heb op mijn pagina 2 textareas met elke een eigen "Opslaan" knop.)
Waarom alles twee keer?
Ik heb een tabel gemaakt voor losse teksten op de site die aan te passen zijn. Elke rij heeft een naam en een tekst. Maar nu wil ik dus 2 keer tekst aanpassen (2 rijen) in 1 formulier met 2 textareas.
@Ger: Dit is toch juist wat ik nu heb?
<textarea name="tekst1"......
<textarea name="tekst2"......
<input type="submit".....
</form>
Maar hoe pas ik de IF daar op aan?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
if ($_POST['submit'] == "Opslaan" && $editactie_titel > 0)
{
$query = "UPDATE $tab_teksten SET tekst='$tekst1' WHERE id='$editid'";
$result = mysql_query($query);
echo "<script language=\"javascript\">location.href='editactie.php';</script>";
}
{
$query = "UPDATE $tab_teksten SET tekst='$tekst1' WHERE id='$editid'";
$result = mysql_query($query);
echo "<script language=\"javascript\">location.href='editactie.php';</script>";
}
Bij de eerste regel klopt editactie_titel niet meer, want nu zit titel en tekst erin. Maar dit lijkt me alleen de waarde bij de button.
Maar moet ik nu 2 maal een UPDATE plaaten? Voor tekst1 en tekst2, maar hoe weet hij nou welke tekst bij welke rij hoort?
Toevoeging op 01/08/2012 16:16:29:
Pff, heb weer wat aangepast maar nu worden al mijn velden leeg lol.
Toevoeging op 01/08/2012 16:18:17:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
$editid = $_POST['editid'];
$tekst1 = $_POST['tekst1'];
$tekst2 = $_POST['tekst2'];
$query = "SELECT * FROM $tab_teksten WHERE beschrijving = 'actie_titel'";
$fetch = mysql_query($query);
$editactie_titel = mysql_fetch_array($fetch);
$query = "SELECT * FROM $tab_teksten WHERE beschrijving = 'actie_tekst'";
$fetch = mysql_query($query);
$editactie_tekst = mysql_fetch_array($fetch);
if ($_POST['submit'] == "Opslaan" && $editactie_titel > 0)
{
$query = "UPDATE $tab_teksten SET tekst='$tekst1' WHERE beschrijving = 'actie_titel'";
$result = mysql_query($query);
$query = "UPDATE $tab_teksten SET tekst='$tekst2' WHERE beschrijving = 'actie_tekst'";
$result = mysql_query($query);
echo "<script language=\"javascript\">location.href='editactie.php';</script>";
}
echo "<form id=\"editactie_titelform\" action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">
<table id=\"editactie_titel\">
<tr>
<td>
<textarea name=\"tekst1\" cols=\"40\" rows=\"3\">".htmlspecialchars($editactie_titel['tekst1'])."</textarea>
<textarea name=\"tekst2\" cols=\"40\" rows=\"3\">".htmlspecialchars($editactie_tekst['tekst2'])."</textarea>
</td>
</tr>
<tr>
<td>
<input type=\"submit\" name=\"submit\" value=\"Opslaan\">
<input type=\"hidden\" name=\"editid\" value=\"".$editactie_titel['id']."\">";
if($result==1)
{
echo "<font style=\"color: #1e620c;\">Opgeslagen</font>";
}
echo "</td>
</tr>
</table>
</form>";
$tekst1 = $_POST['tekst1'];
$tekst2 = $_POST['tekst2'];
$query = "SELECT * FROM $tab_teksten WHERE beschrijving = 'actie_titel'";
$fetch = mysql_query($query);
$editactie_titel = mysql_fetch_array($fetch);
$query = "SELECT * FROM $tab_teksten WHERE beschrijving = 'actie_tekst'";
$fetch = mysql_query($query);
$editactie_tekst = mysql_fetch_array($fetch);
if ($_POST['submit'] == "Opslaan" && $editactie_titel > 0)
{
$query = "UPDATE $tab_teksten SET tekst='$tekst1' WHERE beschrijving = 'actie_titel'";
$result = mysql_query($query);
$query = "UPDATE $tab_teksten SET tekst='$tekst2' WHERE beschrijving = 'actie_tekst'";
$result = mysql_query($query);
echo "<script language=\"javascript\">location.href='editactie.php';</script>";
}
echo "<form id=\"editactie_titelform\" action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">
<table id=\"editactie_titel\">
<tr>
<td>
<textarea name=\"tekst1\" cols=\"40\" rows=\"3\">".htmlspecialchars($editactie_titel['tekst1'])."</textarea>
<textarea name=\"tekst2\" cols=\"40\" rows=\"3\">".htmlspecialchars($editactie_tekst['tekst2'])."</textarea>
</td>
</tr>
<tr>
<td>
<input type=\"submit\" name=\"submit\" value=\"Opslaan\">
<input type=\"hidden\" name=\"editid\" value=\"".$editactie_titel['id']."\">";
if($result==1)
{
echo "<font style=\"color: #1e620c;\">Opgeslagen</font>";
}
echo "</td>
</tr>
</table>
</form>";
Toevoeging op 01/08/2012 16:18:55:
Heb 2 queries om de data op te halen en 2 keer update. En heb nu 2 tekstvelden, maar blijkbaar doe ik iets met benamingen niet goed.
Code (php)
Toevoeging op 01/08/2012 16:33:00:
Wacht ff, het gaat om één onderwerp, met verschillende textarea's per onderwerp of zie dat verkeerd.
Gewijzigd op 01/08/2012 16:29:37 door Ger van Steenderen
Regel 1 t/m 3 is kopiëren van variabelen. Speciale reden voor?
Gebruik binnen php ' en in html " --> scheelt je een heleboel keren \
$_SERVER['PHP_SELF'] is onveilig.
Een formulier maak je tegenwoordig liever niet meer met een tabel-opmaak, maar met css. inline stylen is eigenlijk ook niet meer echt van deze tijd.
Gebruik geen * maar geef de velden op die je wilt.
Mis in je query's foutafhandeling.
Laat het hier maar even bij ;-)
@Obelix: Het variabelen verhaal begrijp ik sowieso nog niet, helaas. Ik weet hoe het met CSS zit en gebruik dat normaliter ook.
Toevoeging op 02/08/2012 16:09:23:
Inmiddels is het gelukt. Ik heb nu 4 textareas die per stuk 1 rij in een zelfde tabel aanpassen. Ik heb daarvoor 4 queries gebruikt om de huidige info op te halen en 4 om te updaten.
Nu heb ik echter nog 1 probleem. Als ik 1 van de 4 velden leeg laat, update hij alles leeg. Heel vreemd :S
Toevoeging op 02/08/2012 16:11:40:
Er is 1 ding wat ik niet begrijp. Dit is code die staat bij de opslaan knop:
Code (php)
1
2
2
<input type=\"submit\" name=\"submit\" value=\"Opslaan\">
<input type=\"hidden\" name=\"editid\" value=\"".$editactie_titel['id']."\">
<input type=\"hidden\" name=\"editid\" value=\"".$editactie_titel['id']."\">
En dit vlak door de updates:
Waarom 2 condities?
Toevoeging op 02/08/2012 16:13:40:
Ow ik snap al waarom het fout gaat, omdat ik dit heb staan:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
if(!empty($_POST['editid']) && !empty($_POST['tekst1']) && !empty($_POST['tekst2']) && !empty($_POST['tekst3']) && !empty($_POST['tekst4'])){
$editid = $_POST['editid'];
$tekst1 = $_POST['tekst1'];
$tekst2 = $_POST['tekst2'];
$tekst3 = $_POST['tekst3'];
$tekst4 = $_POST['tekst4'];
}
$editid = $_POST['editid'];
$tekst1 = $_POST['tekst1'];
$tekst2 = $_POST['tekst2'];
$tekst3 = $_POST['tekst3'];
$tekst4 = $_POST['tekst4'];
}
Maar zonder dit krijg ik weer foutmeldingen over deze variabelen. Pffzz.