Checkbox aangevinkt? Tekst bij behorende ID plaatsen ...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ferdi Eenkhoorn

Ferdi Eenkhoorn

12/11/2011 01:00:04
Quote Anchor link
Hallo,

Ik heb een klein CMS waar ik een tabel heb aangemaakt. Hierin wordt uit een database ID's en tekst uit gehaald:

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
<?php
while ($rij = mysql_fetch_array($res)) {
    $p_id = $rij['p_id'];
    $s_id = $rij['s_id'];
    $a_id = $rij['a_id'];
    $pa_id = $rij['pa_id'];
    $ext = $rij['ext'];
    $afbeeldingen = $fotodir.$a_id.$ext;
    $fototekst = $rij['tekst'];
?>

    <tr>
        <td>
            <input type="hidden" name="pa_id" value="<?php echo $pa_id; ?>" />
            <?php
                image_resize('100', '100', $afbeeldingen, 'Image');
             ?>

        </td>
        <td>
            <?php
                echo "<input type='checkbox' name='tekst[]' value='" . $a_id. "'>Tekst wijzigen:" . $a_id . "\n";
            ?>

            <textarea name="fototekst[]" cols="70" rows="4"><?php echo $fototekst; ?></textarea><br />
        </td>
    </tr>
<?php
}
?>

</table>
 <input class="input_button_rood" type="submit" name="submit" value="WIJZIG" onCLick="return Confirm(14)" />
</form>


Op het moment dat op de "submit" knop wordt gedrukt dan wil ik dat alleen bij de aangevinkte tekst (checkbox bij de textarea) de gegevens bij de juiste id wordt geplaatst in de database:

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
<?php
case "wijzigen_image_sql":
$fotodir = "../images/portfolio/"; // Map waar de foto's zijn opgeslagen
$pa_id     = $_POST["pa_id"];

// Arrays checkboxen
if(isset($_POST['tekst'])) {
    $te = $_POST['tekst'];
}

if(isset($_POST['fototekst'])) {
    $fote = $_POST['fototekst'];
}


if (($_SERVER["REQUEST_METHOD"] == "POST") && (($_POST['submit']) == "WIJZIG")) {
    if(isset($tekst)) { // Als er een tekst gewijzigd moet worden
        foreach ($te as $keyte) {
            $one = "UPDATE portfolio_afbeelding SET ";
            foreach ($fote as $keyfo => $text) {
                if ($keyte == $keyfo) {
                   $two = "tekst='" . $text . "' WHERE afbeelding_id='". $keyte . "'</br >";
                }
            }
                                                        
                echo $one.$two;
           }
    }

?>


Ik krijg dan als output:


UPDATE portfolio_afbeelding SET tekst='test2' WHERE afbeelding_id='1'
UPDATE portfolio_afbeelding SET tekst='test3' WHERE afbeelding_id='2'
UPDATE portfolio_afbeelding SET tekst='' WHERE afbeelding_id='3

Bij ID1 moet "test1" zijn, bij ID2 moet "test2" zijn, enz.. Zoals hierboven is "test1" gewoon overgeslagen.

Op de één of andere manier klopt "if ($keyte == $keyfo)" niet.
Is bovenstaande methode een juiste methode?
Hoe krijg ik het voor elkaar dat de tekst bij de juiste ID wordt geplaatst?
Graag een tip :).

Groet,
Ferdi
Gewijzigd op 12/11/2011 10:33:38 door Ferdi Eenkhoorn
 
PHP hulp

PHP hulp

20/11/2024 12:29:37
 
Obelix Idefix

Obelix Idefix

12/11/2011 10:01:46
Quote Anchor link
Plaats je code aub tussen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
/ [/code ] -tags (zonder spatie).
 
Ferdi Eenkhoorn

Ferdi Eenkhoorn

12/11/2011 10:31:23
Quote Anchor link
Obelix en Idefix op 12/11/2011 10:01:46:
Plaats je code aub tussen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
/ [  / code  ] -tags (zonder spatie).
[/quote]

Gedaan, is idd veel overzichterlijker zo ;-)

Groet,
Ferdi
Gewijzigd op 12/11/2011 10:32:47 door Ferdi Eenkhoorn
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

12/11/2011 10:52:32
Quote Anchor link
arrays beginnen met index nul
 
Ferdi Eenkhoorn

Ferdi Eenkhoorn

12/11/2011 11:01:52
Quote Anchor link
Ger, bedankt voor je reactie.

Ja dat weet ik en dat maakt in dit geval niet uit. Ik vergelijk van beide array's de index waarde met "if ($keyte == $keyfo)", als die gelijk is dan moet deze de gegevens tonen. Ik maak (denk ik) een denk fout, maar welke??
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

12/11/2011 11:12:05
Quote Anchor link
in je eerste foreach is de $keyte de waarde van het element en niet de key zelf
 
Ferdi Eenkhoorn

Ferdi Eenkhoorn

12/11/2011 15:00:51
Quote Anchor link
Dank je voor je tip Ger, ik heb het zo opgelost :)

De input (hier heb ik bij textarea een aanpassing gemaakt):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
echo "<input type='checkbox' name='tekst[]' value='" . $a_id. "'>Tekst wijzigen:" . $a_id . "\n";
<textarea name="fototekst[<?php echo $a_id ?>]" cols="70" rows="4"><?php echo $fototekst; ?></textarea><br />


Output:
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
<?php
if(isset($_POST['tekst'])) {
    $te            = $_POST['tekst'];
}

if(isset($_POST['fototekst'])) {
    $fote            = $_POST['fototekst'];
}


if (($_SERVER["REQUEST_METHOD"] == "POST") && (($_POST['submit']) == "WIJZIG")) {
    if(isset($tekst)) { // Als er een tekst gewijzigd moet worden
        foreach ($te as $keyte) {
            $one = "UPDATE portfolio_afbeelding SET ";
            foreach ($fote as $keyfo => $text) {
                if ($keyte == $keyfo) {
                   $two = "tekst='" . $text . "' WHERE afbeelding_id='". $keyte . "'</br >";
                }
            }
                                                        
               echo $one.$two;
           }
    }

?>


Groet,
Ferdi
Gewijzigd op 12/11/2011 15:01:24 door Ferdi Eenkhoorn
 



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.