Lägga ihop värden från dropdowns och skriva ut en text

Permalänk
Medlem

Lägga ihop värden från dropdowns och skriva ut en text

Kan börja med att mina kunskaper i php, javascript osv är extremt begränsade, nästintill obefintliga..

Om jag har två stycken likadana dropdown menyer som ser ut ungefär såhär.

<select name="meny" id="meny">
<option value="0" selected="selected">Välj</option>
<option value="1">mjölk</option>
<option value="2">kaffe</option>
<option value="3">mjöl</option>
<option value="4">äpple</option>
</select>

Jag vill att value från varje dropdown ska läggas ihop på följande sätt
om jag väljer "kaffe" i den första och "mjöl" i den andra så läggs 2 och 3 ihop till 23.

När 23 är valt ska det då skrivas ut en text typ "kaffe och mjöl, det lät inte så gott"

Har försökt förstå hur man lägger upp respektive fall i ett "switch statement" och därefter kör "return" för det fall som är valt. Men jag förstår nog inte riktigt...

All hjälp är välkommen, även tips på hur jag kan lösa det på nåt annat sätt än att lägga ihop value som jag tänkt mig.

Visa signatur

#1: Z370N ITX | i7 8700k | GTX 1080 | 32GiB
#2: P8Z77-M pro | i7 3770k | GTX 1050ti | 16GiB

Server: Z370-G | i5 8600T | 64GiB | UnRAID 6.9.2 | 130TB
Smartphone: Samsung Z Flip 5 | Android 13 | Shure SE535

Permalänk

@LudvigLindell:
Har ingen erfarenhet alls av php eller JavaScript, men det borde väl gå att casta om till två strängar som läggs ihop?

Permalänk
Medlem
Skrivet av FrazzorXx:

@LudvigLindell:
Har ingen erfarenhet alls av php eller JavaScript, men det borde väl gå att casta om till två strängar som läggs ihop?

Yes... fast i JavaScript är det tricky, typ allt är "dimmigt"

men som sagt, behandla 2 och 3 som strings, lägg ihop dem med "2"+"3" för att få strängen 23. Behandla dem sen som INT(nummer) när du gör switch.

// LZ

Permalänk
Medlem
Skrivet av FrazzorXx:

@LudvigLindell:
Har ingen erfarenhet alls av php eller JavaScript, men det borde väl gå att casta om till två strängar som läggs ihop?

Skrivet av Tea42BBS:

Yes... fast i JavaScript är det tricky, typ allt är "dimmigt"

men som sagt, behandla 2 och 3 som strings, lägg ihop dem med "2"+"3" för att få strängen 23. Behandla dem sen som INT(nummer) när du gör switch.

// LZ

Tack
Jag är dock osäker på hur jag ska hämta datan från menyerna

Visa signatur

#1: Z370N ITX | i7 8700k | GTX 1080 | 32GiB
#2: P8Z77-M pro | i7 3770k | GTX 1050ti | 16GiB

Server: Z370-G | i5 8600T | 64GiB | UnRAID 6.9.2 | 130TB
Smartphone: Samsung Z Flip 5 | Android 13 | Shure SE535

Permalänk
Medlem
Skrivet av LudvigLindell:

Tack
Jag är dock osäker på hur jag ska hämta datan från menyerna

Du måste lägga select-taggarna i en form och hämta datat med _POST eller _GET.

Skrev ihop något lite snabbt, det bör väl ge dig en liten hint iallafall.

<?php if (isset($_POST['submit'])) { $value1 = $_POST['val_1']; $text1 = $_POST['option_text']; $value2 = $_POST['val_2']; $text2 = $_POST['option_text_2']; $sum = $value1.$value2; $sum = intval($sum); switch ($sum) { case $sum: echo "$text1 och $text2"; break; } } ?> <form method="post"> <select name="val_1" onchange="setTextField(this)" required> <option value="" selected disabled>Välj</option> <option value="1">mjölk</option> <option value="2">kaffe</option> <option value="3">äpple</option> </select> <input type="hidden" id="option_text" name="option_text" value=""> <select name="val_2" onchange="setTextField2(this)" required> <option value="" selected disabled>Välj</option> <option value="1">havregryn</option> <option value="2">kakao</option> <option value="3">mjöl</option> </select> <input type="hidden" id="option_text_2" name="option_text_2" value=""> <button type="submit" name="submit">Skicka</button> </form> <script> function setTextField(ddl) { document.getElementById('option_text').value = ddl.options[ddl.selectedIndex].text; } function setTextField2(ddl) { document.getElementById('option_text_2').value = ddl.options[ddl.selectedIndex].text; } </script>

EDIT
Skrev om koden.

Visa signatur

Stationär i5 12600KF + NH-D15S Chromax - TUF Gaming B660M-PLUS D4 - 32GB DDR4 3600MHz - Vega 56 /w Vega 64 bios + Morpheus II - 960 EVO 500GB - Phanteks Eclipse P400S TG - RM750x - AOC Agon AG271QX
Laptop Xeon W-10885M - 32GB DDR4 3200MHz - Quadro RTX 3000 - Samsung 1TB SSD

Permalänk
Medlem

@chif: tack, ska kika om jag hänger med i eftermiddag (:

Ska den här kodbiten ligga i ett ensamt php dokument?

Visa signatur

#1: Z370N ITX | i7 8700k | GTX 1080 | 32GiB
#2: P8Z77-M pro | i7 3770k | GTX 1050ti | 16GiB

Server: Z370-G | i5 8600T | 64GiB | UnRAID 6.9.2 | 130TB
Smartphone: Samsung Z Flip 5 | Android 13 | Shure SE535

Permalänk
Medlem

@LudvigLindell:

Du kan lägga allt i ett PHP-dokument.
Huvudsaken att PHP-koden är inom PHP-taggarna, om inte måste du länka formen till PHP-dokumentet.

Visa signatur

Stationär i5 12600KF + NH-D15S Chromax - TUF Gaming B660M-PLUS D4 - 32GB DDR4 3600MHz - Vega 56 /w Vega 64 bios + Morpheus II - 960 EVO 500GB - Phanteks Eclipse P400S TG - RM750x - AOC Agon AG271QX
Laptop Xeon W-10885M - 32GB DDR4 3200MHz - Quadro RTX 3000 - Samsung 1TB SSD

Permalänk
Medlem

@chif: tack så mycket skriver här igen om jag behöver mer hjälp eller om jag inte förstår. Jag läste php i gymnasiet, men blev inte godkänd

Visa signatur

#1: Z370N ITX | i7 8700k | GTX 1080 | 32GiB
#2: P8Z77-M pro | i7 3770k | GTX 1050ti | 16GiB

Server: Z370-G | i5 8600T | 64GiB | UnRAID 6.9.2 | 130TB
Smartphone: Samsung Z Flip 5 | Android 13 | Shure SE535

Permalänk
Medlem

@LudvigLindell:

Bara att fråga, vill du ta något i PM så är det fritt fram det också.
Övning ger färdighet, som man brukar säga.

Här kan du testa koden jag skrev.

Visa signatur

Stationär i5 12600KF + NH-D15S Chromax - TUF Gaming B660M-PLUS D4 - 32GB DDR4 3600MHz - Vega 56 /w Vega 64 bios + Morpheus II - 960 EVO 500GB - Phanteks Eclipse P400S TG - RM750x - AOC Agon AG271QX
Laptop Xeon W-10885M - 32GB DDR4 3200MHz - Quadro RTX 3000 - Samsung 1TB SSD