PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Hilfe bei switch anweisung und auswahlfeldern gesucht (http://www.selfphp.de/forum/showthread.php?t=16132)

damohsta 15.02.2007 10:44:31

Hilfe bei switch anweisung und auswahlfeldern gesucht
 
Morgen zusammen,
habe ein problem das ich gestern schonmal versucht habe über JS zu lösen...war aber leider mit denkfehler. Jetzt hab ich mir mal überlegt wie das ganze mit php aussehen könnte. Allerdings bin ich sehr unsicher in der syntax und mir nicht sicher ob das so alles funzt:

Was soll das Programm wie leisten?
1. Aus zwei Auswahlfeldern soll jeweils eine Auswahl getroffen werden. Den Auswahlpunkten von AuswahlA habe ich Werte von 1-3 zugewiesen, den Auswahlpunkten von AuswahlB Werte in 10er schritten. Dadurch ergibt sich bei der addition dieser beiden werte immer ein eindeutiges Ergebnis.

Dann sollen die beiden Werte einfach miteinander addiert werden und das Ergebnis mit $_Summe gleich gesetzt werden. Nun kommt eine switch Anweisung welche den wert von summe prüft. Bei den hier gegeben Auswahlfeldern ergeben sich somit 6 mögliche Cases. Sobald bei der Prüfung also $_Summe einem der Case-Werte entspricht, soll im inputfeld Preis der im Case hinterlegte Wert erscheinen.


PHP-Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Angebotsseite</title>
</head>
    <body>
        <?php
        
//Anlegen der Variablen
        
$_AuswahlA 0;
        
$_AuswahlB 0;
        
$_Summe 0;
        
$_Preis 0;
        
        
$_Summe $_AuswahlA $_AuswahlB;
        
        switch(
$_Summe){
            case 
11:
            
$_Preis 100;
                 break;
            case 
12:
            
$_Preis 200;
            break;
                 case 
13:
            
$_Preis 300;
            break;
                 case 
21:
            
$_Preis 400;
            break;
                 case 
22:
            
$_Preis 500;
            break;
                 case 
23:
            
$_Preis 600;
                 break;
        
?>
        
        <table width="288" border="1" cellspacing="2" cellpadding="0">
            <tr>
                <td>Menge</td>
                <td>Art</td>
                <td>Preis</td>
            </tr>
            <tr>
                <td><select id="AuswahlB" name="AuswahlA" size="1">
                        <option value="1">1000</option>
                        <option value="2">2000</option>
                        <option value="3">3000</option>
                    </select></td>
                <td><select id="AuswahlB" name="AuswahlB" size="1">
                        <option value="10">1-farbig</option>
                        <option value="20">2-farbig</option>
                    </select></td>
                <td><input type="text" id="preis" name="preis" readonly size="14"></td>
            </tr>
        </table>
       <b>Bestellen</b>
        <p>
            
        </p>
    </body>

</html>

Wenn mir jemand sagen kann wie ich jetzt die werte aus den Auswahlfeldern in meine Variablen $_AuswahlA und $_AuswahlB bekomme, bin ich schon nen schritt weiter.

Grüße Marco

feuervogel 15.02.2007 11:14:16

AW: Hilfe bei switch anweisung und auswahlfeldern gesucht
 
1. du musst variablen nicht anlegen. in deinem fall überschreibst du sie sogar, was sinnfrei ist, weil dann ist $_Summe immer 0.

2. wie man formular-eingaben verarbeitet, findest du in einem der ersten beiden links in meiner signatur.

p.s.: wieso fangen bei dir die variablen-namen mit einem _ an?

damohsta 15.02.2007 11:26:36

AW: Hilfe bei switch anweisung und auswahlfeldern gesucht
 
zu 1/3. Also nur $varname. Hab hier so ein alten php buch wo die variablen mit _ drin stehen *achselzuck*.

zu 2.link werd ich mir gleich reinziehen, danke schonmal ;)

damohsta 15.02.2007 11:49:01

AW: Hilfe bei switch anweisung und auswahlfeldern gesucht
 
Hab jetzt mal die variablendeeklaration am anfeng weggelassen. Das Php pack ich dann in ne sepparate Datei, hier jetzt nur drinnen gelassen ums kurz zuhalten. Wie sag ich jetzt aber das die in AuswahlA getroffene Auswahl an die Variable $AuswahlA übergeben werden soll? Die Auswahl und deren ID auch mit $AuswahlA benennen?

PHP-Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Angebotsseite</title>
</head>
    <body>
        <?php 
        
//datei: preisberechnung.php
        
        
$Summe $AuswahlA $AuswahlB;
        
        switch(
$_Summe){
            case 
11:
            
$_Preis 100;
            case 
12:
            
$_Preis 200;
            case 
13:
            
$_Preis 300;
            case 
21:
            
$_Preis 400;
            case 
22:
            
$_Preis 500;
            case 
23:
            
$_Preis 600;
        
?>
        
        <table width="288" border="1" cellspacing="2" cellpadding="0">
            <tr>
                <td>Menge</td>
                <td>Art</td>
                <td>Preis</td>
            </tr>
            <tr>
                <td>
                <form action="preisberechnung.php" method="post">
                <select id="AuswahlB" name="AuswahlA" size="1">
                        <option value="1">1000</option>
                        <option value="2">2000</option>
                        <option value="3">3000</option>
                </select>
                </form>
                </td>
                <td>
                <form action="preisberechnung.php" method="post">
                <select id="AuswahlB" name="AuswahlB" size="1">
                        <option value="10">1-farbig</option>
                        <option value="20">2-farbig</option>
                </select>
                </form>
                </td>
                
                <td><input type="text" id="summe" name="summe" readonly size="14"></td>
            </tr>
        </table>
       <b>Bestellen</b>
        <p>
            
        </p>
    </body>

</html>


damohsta 15.02.2007 13:47:43

AW: Hilfe bei switch anweisung und auswahlfeldern gesucht
 
Kann mal einer drüber schauen ob ich mich auf dem richtigen weg befinde? ;)

PHP-Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Angebotsseite</title>
</head>
    <body>
        <?php 
        
//datei: preisberechnung.php ....dann in ausgelagerter datei....
        
$auswahla = (int) $_post["AuswahlA"]
        
$auswahlb = (int) $_post["AuswahlB"]
        
$Summe $auswahla $auswahlb;
        
        switch(
$_Summe){
            case 
11:
            
$_Preis 100;
            break;
            case 
12:
            
$_Preis 200;
            break;
            case 
13:
            
$_Preis 300;
            break;
            case 
21:
            
$_Preis 400;
            break;
            case 
22:
            
$_Preis 500;
            break;
            case 
23:
            
$_Preis 600;
            break;
        
?>
        
        <table width="288" border="1" cellspacing="2" cellpadding="0">
            <tr>
                <td>Menge</td>
                <td>Art</td>
                <td>Preis</td>
            </tr>
            <tr>
                <td>
                <form action="preisberechnung.php" method="post">
                <select id="AuswahlB" name="AuswahlA" size="1">
                        <option value="1">1000</option>
                        <option value="2">2000</option>
                        <option value="3">3000</option>
                </select>
                </td>
                <td>
                <select id="AuswahlB" name="AuswahlB" size="1">
                        <option value="10">1-farbig</option>
                        <option value="20">2-farbig</option>
                </select>
                </form>
                </td>
                
                <td><input type="text" id="summe" name="summe" readonly size="14"></td>
            </tr>
        </table>
        <td><input type="submit" id="senden" name="senden" readonly size="14"></td>
        <p>
            
        </p>
    </body>

</html>


BenniG. 15.02.2007 13:50:33

AW: Hilfe bei switch anweisung und auswahlfeldern gesucht
 
Ich schätze du bist mit php eh auf dem falschen Weg.. Du willst ja, dass die Summe sofort erscheint und nicht erst nach Absenden des Formular, oder?
Da bliebe Dir nur Javascript, oder halt doch das Formular abschicken..

damohsta 15.02.2007 14:22:15

AW: Hilfe bei switch anweisung und auswahlfeldern gesucht
 
Wieso? Ich kann doch ein onchange per javascrit in der html einsetzten welches bei jeder änderung der auswahl das php neu startet oder?

Sollte dann irgendwie in diese richtung gehen....auch wenn so leider noch nix läuft ;/

HTML:
PHP-Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>
    <
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
    <
title>Angebotsseite</title>
</
head>
    <
body>
        <
script type="text/javascript"
        
        <
table width="288" border="1" cellspacing="2" cellpadding="0">
            <
tr>
                <
td>Menge</td>
                <
td>Art</td>
                <
td>Preis</td>
            </
tr>
            <
tr>
                <
td>
                <
form action="preisberechnung.php" method="post" onchange="preisberechnung.php()">
                <
select id="AuswahlB" name="AuswahlA" size="1">
                        <
option value="1">1000</option>
                        <
option value="2">2000</option>
                        <
option value="3">3000</option>
                </
select>
                </
td>
                <
td>
                <
select id="AuswahlB" name="AuswahlB" size="1" onchange="preisberechnung.php()">
                        <
option value="10">1-farbig</option>
                        <
option value="20">2-farbig</option>
                </
select>
                </
form>
                </
td>
                
                <
td><input type="text" id="summe" name="summe" readonly size="14"></td>
            </
tr>
        </
table>
        <
td><input type="submit" id="senden" name="senden" readonly size="14"></td>
        <
p>
            
        </
p>
    </
body>

</
html

und PHP:
PHP-Code:

<?php 
        
//datei: preisberechnung.php ....dann in ausgelagerter datei....
        
$auswahla = (int) $_post["AuswahlA"]
        
$auswahlb = (int) $_post["AuswahlB"]
        
$Summe $auswahla $auswahlb;
        
        switch(
$_Summe){
            case 
11:
            
$Preis 100;
            break;
            case 
12:
            
$Preis 200;
            break;
            case 
13:
            
$Preis 300;
            break;
            case 
21:
            
$Preis 400;
            break;
            case 
22:
            
$Preis 500;
            break;
            case 
23:
            
$Preis 600;
            break;
            
            echo 
"$Preis"
        
?>


BenniG. 15.02.2007 14:26:11

AW: Hilfe bei switch anweisung und auswahlfeldern gesucht
 
Ehm, sorry, aber du scheinst da einiges durcheinander zu würfeln.. PHP wird auf dem Webserver abgearbeitet. Du kannst nichts an der Seite ändern, ohne dass die Seite neu geladen (oder per Ajax=>Javascript ein Request abgesetzt wird).
Da du so oder so JS brauchst kannst du die Anzeige gleich in JS machen.. Oder halt das Formular komplett neu laden..

damohsta 15.02.2007 14:39:38

AW: Hilfe bei switch anweisung und auswahlfeldern gesucht
 
Zitat:

Ehm, sorry, aber du scheinst da einiges durcheinander zu würfeln..
Genau deshalb bin ich ja hier und frage ;)

PS: Da ich das ding da eh als bestellung versenden muss, komm ich um php aber auch net rum. Hatte das gestern schonmal alles mit JS versucht, allerdings mit einigen denkfehlern.

damohsta 15.02.2007 14:58:49

AW: Hilfe bei switch anweisung und auswahlfeldern gesucht
 
Die Variante mit JS sieht übrigens so aus. Auch hier sind einige noch einige fehler drinnen und somit nicht lauffähig ;/

PHP-Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>
    <
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
    <
title>Test</title>
     <
script type="text/javascript"
     
//<![CDATA[
     
        
var menge0
        var 
art 0
        var 
zahlart 0
        var 
preis 0
            
        
document.getElementById("summe").value document.getElementById("menge").value document.getElementById("art").value;    
        
        function 
rechne() { 
            
summe document.getElementById("art").value;
            switch(
summe){
                case 
"11":
                    
artfaktor 1;
                break;
                case 
"12":
                    
artfaktor 1.2;
                break;
            }
        
document.getElementById("preis").value document.getElementById("artfaktor").value;    
        
             
        }
        
        
window.onload rechne;

    
//]]>  
    
</script>
    
</head>
    <body>
        <table width="288" border="1" cellspacing="2" cellpadding="0">
            <tr>
                <td>Menge</td>
                <td>Art</td>
                <td>Preis</td>
            </tr>
            <tr>
                <td><select id="menge" name="menge" size="1" onchange="rechne()">
                        <option value="1">1000</option>
                        <option value="2">2000</option>
                        <option value="3">3000</option>
                    </select></td>
                <td><select id="art" name="art" size="1" onchange="rechne()">
                        <option value="10">1-farbig</option>
                        <option value="20">2-farbig</option>
                    </select></td>
                <td><input type="text" id="summe" name="summe" readonly size="14"></td>
            </tr>
        </table>
       <b>Bestellen</b>
        <p>
            
        </p>
    </body>

</html> 



Alle Zeitangaben in WEZ +2. Es ist jetzt 14:12:47 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.