waarde listmenu in database vervangen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Sietsko Bos

Sietsko Bos

23/04/2019 09:56:47
Quote Anchor link
Hoi,
Ik ben hier al eerder mee bezig geweest, maar het is niet gelukt om dat aan de praat te krijgen.
Na verder zoeken op internet kwam ik dit script tegen die zou moeten doen wat ik nodig heb, maar het werkt niet.

Wat ik dus wil is de waarde van het listmenu wijzigen in de database zonder dat de pagina opnieuw geladen wordt.

Wie wil me helpen om dit werkend te krijgen, ik zou er erg mee geholpen zijn.

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
<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>

    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript">

        $(document).ready(function() {
            
            var selectValue = $('#selectBoxID').val();

            // post to php script
            $.ajax({
                type: 'POST',
                url: 'insertdetailed.php',
                data: { selectValueBox: selectValue }
            });
        });

    </script>
</head>
<body>
    <form id="update_db" name="update_db" method="post">
        <select id="selectBoxID" onselect="saveToDatabase()">
               <option value="1">Value 1</option>
               <option value="2">Value 2</option>
        </select>
        <input type="hidden" name="id" id="1">
    </form>
</body>
</html>



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
<?php
if(isset($_POST['selectValueBox'])){
    
    $connectie = new mysqli("localhost", "xxxxxx", "xxxxxx", "xxxxxx");

    // update de score
    $sql_update = "UPDATE obs_scores SET score = '".$_POST['selectValueBox']."' WHERE id= '".$_POST['id']."'";

    if (mysqli_query($connectie, $sql_update)) {
       echo 'SUCCESS';
       print $sql_update;
    }
else {
       echo 'FAILED';
       print $sql_update;
    }
}

?>
Gewijzigd op 23/04/2019 15:26:30 door Sietsko Bos
 
PHP hulp

PHP hulp

23/12/2024 18:49:57
 
- Ariën  -
Beheerder

- Ariën -

23/04/2019 10:00:23
Quote Anchor link
Wat werkt er niet aan? Wat gebeurt er?

Let er wel op dat je gevoelig bent voor (onbedoelde) SQL-injection.
Gewijzigd op 23/04/2019 10:01:11 door - Ariën -
 
Sietsko Bos

Sietsko Bos

23/04/2019 10:03:07
Quote Anchor link
Als ik in het listmenu 2 ga kiezen zou ik toch de $sql_update moeten krijgen te zien, dat gebeurt dus niet.

- Ariën -
Hoe zou ik dit dan ook veilig kunnen maken?
Met mysqli_real_escape_string() ?
Gewijzigd op 23/04/2019 10:05:23 door Sietsko Bos
 
- Ariën  -
Beheerder

- Ariën -

23/04/2019 10:11:17
Quote Anchor link
Ja..

Heb je al naar de uitvoer van je AJAX-request gekeken in je browser?
 
Sietsko Bos

Sietsko Bos

23/04/2019 10:16:06
Quote Anchor link
- Ariën -
Nee heb ik niet gedaan, weet ook niet hoe ik dat kan zien.
Gewijzigd op 23/04/2019 10:28:30 door Sietsko Bos
 
- Ariën  -
Beheerder

- Ariën -

23/04/2019 10:43:20
Quote Anchor link
https://developers.google.com/web/tools/chrome-devtools/network/

Dit werkt in bijna alle browsers hetzelfde.
Gewijzigd op 23/04/2019 10:43:54 door - Ariën -
 
Adoptive Solution

Adoptive Solution

23/04/2019 10:44:50
Quote Anchor link
Input in regel 28 heeft geen value en kan derhalve geen update doen op basis van id, want die is leeg.

Toevoeging op 23/04/2019 12:34:09:

Het is ook beter om de input na regel 29 te zetten en zowel de input als de select te omlijsten met een <form>.
Gewijzigd op 23/04/2019 10:45:12 door Adoptive Solution
 
Sietsko Bos

Sietsko Bos

23/04/2019 13:28:37
Quote Anchor link
- Ariën -
Ik heb de video gekeken, en de php file om alles in de database te zetten wordt niet geladen zo te zien.

Adoptive Solution
Regel 28 heeft id toch een waarde van 1 die meegegeven wordt als een hidden field in de POST?
Ik heb de hiddenfield regel verplaatst onde de select en het omsloten met een form, maar nog steeds werkt het niet.

Ik zie wel een foutmelding: Unchecked runtime.lastError: The message port closed before a response was received.

Ik heb ook niet zoveel kennis van Javascript om dit op te lossen, dus enige hulp is welkom.
Gewijzigd op 23/04/2019 13:47:49 door Sietsko Bos
 
- Ariën  -
Beheerder

- Ariën -

23/04/2019 13:52:59
Quote Anchor link
Wat gebeurt er als je de PHP-file handmatig aanroept? En bij voorkeur als je zelf een POST-request afvuurt? Dat kan bijvoorbeeld eenvoudig met Postman.
Gewijzigd op 23/04/2019 13:57:43 door - Ariën -
 
Sietsko Bos

Sietsko Bos

23/04/2019 14:14:47
Quote Anchor link
- Ariën -

Er zat inderdaad nog een foutje in de insertdetailed.php, de $connectie en de $sql_update moesten omgedraaid worden.
Als ik nu rechtstreeks een POST doe in de file werkt het goed, krijg ook de Succes.

Alleen als ik de menu.php het listmenu wijzig, gebeurt er niets.
Op 1 of andere manier wordt de insertdetailed.php niet aangeroepen.
 
- Ariën  -
Beheerder

- Ariën -

23/04/2019 14:16:02
Quote Anchor link
Ben je daar wel zeker van, als je de network-tab gebruikt?
Dan kan je prima zien wat er op de achtergrond voor output uit insertdetailed.php komt.
 
Sietsko Bos

Sietsko Bos

23/04/2019 14:28:32
Quote Anchor link
- Ariën -
Ja ik denk het wel want in de network-tab staan alleen de jquery.min.js en de menu.php
Als ik bijvoorbeeld value2 kies gebeurt er niets en komt er ook niet bij in de network-tab te staan.
 
- Ariën  -
Beheerder

- Ariën -

23/04/2019 14:49:48
Quote Anchor link
Dan wordt je ajax-request niet uitgevoerd.

<?HTML bovenin klopt trouwens ook niet echt.
Tenzij je het voor de mark-up hier in het forum bedoelt, want dan hebben we de [code] en [/code]-tags die je voor code-blokken kan gebruiken.

Zo te zien moet je de OnReady function gebruiken om je jQuery-script:
https://learn.jquery.com/using-jquery-core/document-ready/

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$(document).ready(function() {
    // doe iets!
});
Gewijzigd op 23/04/2019 14:52:45 door - Ariën -
 
Sietsko Bos

Sietsko Bos

23/04/2019 15:10:08
Quote Anchor link
- Ariën -

Ik heb de begincode even aangepast, die was inderdaad voor de mark-up bedoelt.
Ik heb de de code van de files geupdate naar wat ik nu heb.

Kun je me exact uitleggen wat ik nu moet aanpassen zodat het werkt want mijn javascript en jquery reikt niet zover dat ik het kan aanpassen.
Gewijzigd op 23/04/2019 15:11:32 door Sietsko Bos
 
- Ariën  -
Beheerder

- Ariën -

23/04/2019 15:11:28
Quote Anchor link
Lijn 11 t/m 18 even in die ready functie zetten, daar waar het commentaar staat.
Met andere woorden: Dus verpakken in die ready-functie.
Gewijzigd op 23/04/2019 15:12:15 door - Ariën -
 
Sietsko Bos

Sietsko Bos

23/04/2019 15:16:25
Quote Anchor link
- Ariën -

Nu staat inderdaad de insertdetailed.php erbij, maar bij een selectwissel nog steeds geen uitvoer.
Gewijzigd op 23/04/2019 15:25:49 door Sietsko Bos
 
Adoptive Solution

Adoptive Solution

23/04/2019 15:26:45
Quote Anchor link
Komt omdat je de id van het input veld niet meestuurt.
En dan nog zal het niet helpen omdat id geen value heeft.

Verder komt de vraag overeen met deze :

https://www.phphulp.nl/php/forum/topic/selectmenu-versturen-met-ajax/102599/
 
Sietsko Bos

Sietsko Bos

23/04/2019 15:32:52
Quote Anchor link
Adoptive Solution

Klopt, maar dat was een ander script die niet wilde werken.

Hoe kan ik dan de id value meesturen met een vaiabele value?
 
Jelle Dnw

Jelle Dnw

23/04/2019 15:33:18
Quote Anchor link
Je moet even gaan listenen op een change event ook.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
      
$(document).ready(function() {
    $('#selectBoxID').change(function() {
        const selectValue = $(this).val();

        // post to php script
        $.post('insertdetailed.php', { selectValueBox: selectValue });
    });
});
Gewijzigd op 23/04/2019 15:33:44 door Jelle Dnw
 
Sietsko Bos

Sietsko Bos

23/04/2019 15:38:57
Quote Anchor link
Jelle DNW

Dat werkt inderdaad.
Heb je ook nog een oplossing om de id mee te sturen?
 
Adoptive Solution

Adoptive Solution

23/04/2019 15:39:40
 

Pagina: 1 2 3 volgende »



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.