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

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2013

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.

#1: Z370N ITX | i7 8700k | GTX 980 | 32GiB | 950 Pro 512GB
#2: P8Z77-M pro | i7 3770k | AMD 6970 | 16GiB

Server: Z370-G | i5 8600T | 32GiB | UnRAID 6.5.0 | 62TB
HTPC: i7 2600k | GTX 1050ti | 8GiB
Smartphone: Huawei Mate 10 Pro | Android 8.0 | root | Shure SE535

Trädvy Permalänk
Medlem
Registrerad
Okt 2012

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

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Mar 2010
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

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2013
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

#1: Z370N ITX | i7 8700k | GTX 980 | 32GiB | 950 Pro 512GB
#2: P8Z77-M pro | i7 3770k | AMD 6970 | 16GiB

Server: Z370-G | i5 8600T | 32GiB | UnRAID 6.5.0 | 62TB
HTPC: i7 2600k | GTX 1050ti | 8GiB
Smartphone: Huawei Mate 10 Pro | Android 8.0 | root | Shure SE535

Trädvy Permalänk
Medlem
Plats
Avesta
Registrerad
Sep 2003
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.

Stationär i3 8100 + Dark Rock 4 Pro - ROG Strix Z370-E Gaming - 16GB DDR4 3200MHz - MSI RX Vega 56 /w Vega 64 bios + Morpheus II - 960 EVO 500GB - Phanteks Eclipse P400S TG - RM750x - AOC Agon AG271QX
Laptop i7 3630QM - 16GB DDR3 - AMD 7970M - Samsung 850 EVO 250GB

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2013

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

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

#1: Z370N ITX | i7 8700k | GTX 980 | 32GiB | 950 Pro 512GB
#2: P8Z77-M pro | i7 3770k | AMD 6970 | 16GiB

Server: Z370-G | i5 8600T | 32GiB | UnRAID 6.5.0 | 62TB
HTPC: i7 2600k | GTX 1050ti | 8GiB
Smartphone: Huawei Mate 10 Pro | Android 8.0 | root | Shure SE535

Trädvy Permalänk
Medlem
Plats
Avesta
Registrerad
Sep 2003

@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.

Stationär i3 8100 + Dark Rock 4 Pro - ROG Strix Z370-E Gaming - 16GB DDR4 3200MHz - MSI RX Vega 56 /w Vega 64 bios + Morpheus II - 960 EVO 500GB - Phanteks Eclipse P400S TG - RM750x - AOC Agon AG271QX
Laptop i7 3630QM - 16GB DDR3 - AMD 7970M - Samsung 850 EVO 250GB

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2013

@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

#1: Z370N ITX | i7 8700k | GTX 980 | 32GiB | 950 Pro 512GB
#2: P8Z77-M pro | i7 3770k | AMD 6970 | 16GiB

Server: Z370-G | i5 8600T | 32GiB | UnRAID 6.5.0 | 62TB
HTPC: i7 2600k | GTX 1050ti | 8GiB
Smartphone: Huawei Mate 10 Pro | Android 8.0 | root | Shure SE535

Trädvy Permalänk
Medlem
Plats
Avesta
Registrerad
Sep 2003

@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.

Stationär i3 8100 + Dark Rock 4 Pro - ROG Strix Z370-E Gaming - 16GB DDR4 3200MHz - MSI RX Vega 56 /w Vega 64 bios + Morpheus II - 960 EVO 500GB - Phanteks Eclipse P400S TG - RM750x - AOC Agon AG271QX
Laptop i7 3630QM - 16GB DDR3 - AMD 7970M - Samsung 850 EVO 250GB