De optiewaarde verkrijgen zonder een formulier in te dienen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pascal Schuffelers

Pascal Schuffelers

24/05/2019 12:37:35
Quote Anchor link
Ik heb een probleempje met het ophalen van een gekozen optie uit een selectbox.
Hierbij heb ik een code gevonden via google echter , dit zou volgens hun moeten werken, maar ik zie geen waarde verschijnen als ik een keuze maak.

De code die ik gebruik om mijn selectbox te vullen is als volgt.:
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
<select name="DienstGebruiker" id="employee" onchange="load_new_content()" style=" height:26px;">
<option value="" disabled selected="selected[]" multiple="multiple">Selecteer gebruiker</option>

<?php
$pdo
= Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM preparationusers order by Users ASC";
$q = $pdo->prepare($sql);
$q->execute(array($Id,$Users));
Database::disconnect();
while ($row = $q->fetch(PDO::FETCH_ASSOC)) {
selected = ( $row['Users'] == $_POST['DienstGebruiker'] ? 'selected' : '' );
echo "<option value='" . $row['Users'] . "' " . $selected . " >" . $row['Users'] . "</option>";}

?>

</select>



Het script dat dus word aangeroepen als ik een keuze maak is deze.:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<script>
        function load_new_content(){
     var selected_option_value=$("#DienstGebruiker option:selected").val(); //get the value of the current selected option.

     $.post("script_that_receives_value.php", {option_value: selected_option_value},
         function(data){ //this will be executed once the `script_that_receives_value.php` ends its execution, `data` contains everything said script echoed.
             // $("#place_where_you_want_the_new_html").html(data);
              alert(data); //just to see what it returns
         }
     );
}     </script>


Hij zou dus de volgende file moeten oproepen.: script_that_receives_value.php
Dit werkt echter de gekozen waarde van de select box zou dan getoond moeten worden in een alert box, maar de waarde word niet overgenomen.

De code die in script_that_receives_value.php staat is.:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$selected_option
=$_POST['DienstGebruiker'];

    //Do what you need with this value, then echo what you want to be returned.

    echo "you have selected the option with value=$selected_option";
?>


Kan mij iemand zeggen waarom de gekozen waarde van mijn selectbox niet overgenomen word naar mijn alert box?
De reden namelijk dat ik die alert box even gebruik is namelijk dat ik die waarde zonder form bevestiging mee kan nemen in alle andere vensters die ik gebruik voor de form bevestigd word.
Gewijzigd op 24/05/2019 12:39:40 door Pascal Schuffelers
 
PHP hulp

PHP hulp

28/03/2024 20:00:38
 
Thomas van den Heuvel

Thomas van den Heuvel

24/05/2019 13:05:47
Quote Anchor link
Wat je verstuurt: option_value met waarde selected_option_value.
Wat je probeert op te vragen: $_POST['DienstGebruiker'].

Je verzendt niet langer het oorspronkelijke formulier maar je bouwt zelf het POST request. Dit had je zelf ook kunnen testen door de inhoud van $_POST te dumpen in script_that_receives_value.php.

Voor het selecteren van de waarde kun je ook simpelweg $('#employee').val() gebruiken denk ik (dus niet DienstGebruiker, dat is geen id). En ook dat kun je in afzondering testen.

Dit is weer zo'n probleem waarbij je niet weet wat er gebeurt omdat je geen informatie opvangt over de toestand van je variabelen en is dus niet zozeer een specifiek probleem, maar meer een (gebrek aan een) zekere werkwijze die je jezelf (zou) moet(en) aanleren waarbij je variabelen en waarden inspecteert.
Gewijzigd op 24/05/2019 13:11:52 door Thomas van den Heuvel
 
Pascal Schuffelers

Pascal Schuffelers

27/05/2019 16:31:13
Quote Anchor link
Oke zal het later een testen, echter wat ik al aangaf, code komt vanuit google.
 
Adoptive Solution

Adoptive Solution

27/05/2019 17:36:02
Quote Anchor link
Dit lijkt me de plek waar je het vond. Niet vanuit Google, maar bij stackoverflow.

https://stackoverflow.com/questions/15153595/getting-the-option-value-without-submitting-a-form

Met goed lezen en wat oefenen zou het moeten lukken.

Toevoeging op 27/05/2019 18:09:58:

Uitgewerkt voorbeeld volgens topic bij stackoverflow :

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
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<script>

function load_new_content()
{
    //get the value of the current selected option.
    var selected_option_value=$("#select1 option:selected").val();

    $.post("script_that_receives_value.php",
        {
            option_value: selected_option_value
        },
        function(data)
        {
            // this will be executed once the 'script_that_receives_value.php' ends its execution,
            // 'data' contains everything said script echoed.
            $("#place_where_you_want_the_new_html").html(data);
            alert(data); //just to see what it returns
        }
    );
}

</script>

<select name='select1' id='select1' onchange='load_new_content()'>
    <option value="IVP" selected>IVP</option>
    <option value="SURTEK">SURTEK</option>
    <option value="GUITARTUNER">GUITARTUNER</option>
    <option value="OTHER">OTHER</option>
</select>

<div id='place_where_you_want_the_new_html'></div>


Bestand 'script_that_receives_value.php' bevat :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '<pre>' . print_r($_POST, TRUE) . '</pre>';
?>
 
Thomas van den Heuvel

Thomas van den Heuvel

27/05/2019 19:12:02
Quote Anchor link
Pascal Schuffelers op 27/05/2019 16:31:13:
code komt vanuit google.

De grootst mogelijke (foutieve) onzin staat op het internet, iets blindelings overnemen en hopen dat het werkt lijkt mij onverstandig. Je zult op zijn minst moeten begrijpen/doorgronden wat code doet.
 



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.