1 knop voor 2 queries?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ferdi Verbeek

Ferdi Verbeek

01/08/2012 14:53:46
Quote Anchor link
Goed, ik zet met het volgende probleem.

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)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
                  }


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
    }


Knop B
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
                  }


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
    }


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 :)
 
PHP hulp

PHP hulp

19/05/2024 18:21:26
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

01/08/2012 15:01:01
Quote Anchor link
Door er twee formulieren van te maken.
 
- SanThe -

- SanThe -

01/08/2012 15:10:05
Quote Anchor link
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?
 
Ferdi Verbeek

Ferdi Verbeek

01/08/2012 15:57:14
Quote Anchor link
Ik heb heb een kopie gemaakt van een bestaand formulier met 1 textarea en 1 knop. Nu heb ik dus dit 2 keer nodig, maar wil eigenlijk beide velden met 1 knop updaten.

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?
 
- SanThe -

- SanThe -

01/08/2012 16:00:17
Quote Anchor link
<form ........
<textarea name="tekst1"......
<textarea name="tekst2"......
<input type="submit".....
</form>
 
Ferdi Verbeek

Ferdi Verbeek

01/08/2012 16:09:25
Quote Anchor link
Ja okee, dat is vrij logisch. Dat ik in 1 form dus 2 maal textarea heb.

Maar hoe pas ik de IF daar op aan?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
    }


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)
PHP script in nieuw venster Selecteer het PHP script
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
$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>";


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.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

01/08/2012 16:28:57
Quote Anchor link
Door het id van de rij op te nemen in de name van de textarea als een array key:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<texarea name="texta[1]">
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST']) {
    foreach ($_POST['texta'] as $key => $value) {
    //$key is het id
    //de rest kan je zelf bedenken

    }
}

?>



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
 
Obelix Idefix

Obelix Idefix

01/08/2012 16:39:30
Quote Anchor link
Even wat praktische tips: gebruik variabelen buiten quotes.
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 ;-)
 
Ferdi Verbeek

Ferdi Verbeek

01/08/2012 16:51:15
Quote Anchor link
@Ger: Nee, snap het nog niet. Maar zal er vanavond wel naar kijken.

@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)
PHP script in nieuw venster Selecteer het PHP script
1
2
<input type=\"submit\" name=\"submit\" value=\"Opslaan\">
              <input type=\"hidden\" name=\"editid\" value=\"".$editactie_titel['id']."\">


En dit vlak door de updates:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if ($_POST['submit'] == "Opslaan" && $editactie_titel > 0)


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)
PHP script in nieuw venster Selecteer het PHP script
1
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'];
}


Maar zonder dit krijg ik weer foutmeldingen over deze variabelen. Pffzz.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.