2016-08-09 28 views
-1

Ich habe eine foreach-Schleife, die die Zahlen von 1-12, jede Zahl ist ein Verweis auf eine Frage und Antwort. Die switch-Anweisung ruft die Informationen ab und druckt die Zusammenfassung aus.Speichern Sie den Schalter in eine Variable oder rufen Sie den Schalter später

foreach ($_POST as $name => $value) { 


    $groupSplit = str_split($name, 5); 
// print_r("Group Num: " . $groupSplit[1] . "<br/>"); 

    $optSplit = str_split($value, 3); // splits opt and the num x 
// print_r("Option Num " . $optSplit[1] . "<br/>"); 



switch ($groupSplit[1]) { 
    case 1: 
     echo "<h2>" . $group1 . "</h2>" . isEven($optSplit[1] . "<br><button onclick='window.history.back()'>Start Over</button><button>Confirm and Send</button>") ; 
     break; 
    case 2: 
     echo "<h2>" . $group2 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
    case 3: 
     echo "<h2>" . $group3 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>" ; 
     break; 
    case 4: 
     echo "<h2>" . $group4 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
    case 5: 
     echo "<h2>" . $group5 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
    case 6: 
     echo "<h2>" . $group6 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
    case 7: 
     echo "<h2>" . $group7 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
    case 8: 
     echo "<h2>" . $group8 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
    case 9: 
     echo "<h2>" . $group9 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
    case 10: 
     echo "<h2>" . $group10 . "</h2>" . isEven($optSplit[1]). "<br><button onclick='window.history.back()'>Start Over</button>" ; 
     break; 
    case 11: 
     echo "<h2>" . $group11 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
    case 12: 
     echo "<h2>" . $group12 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
} 

Nachdem die Zusammenfassung angezeigt wird, möchte ich sie als E-Mail senden. Da es mehrere Fälle gibt, muss ich die Switch-Funktion für die E-Mail wiederverwendbar machen. Ich habe versucht, es in einer Variablen und einer Funktion mit Wert zu speichern, aber es hat nicht funktioniert.

Gibt es eine Möglichkeit, diese Schalterfunktion mehrmals aufzurufen, ohne sie kopieren zu müssen?

Vielen Dank.

+0

Ja! Nutze OOP und genieße dein Leben als Entwickler! Und separate Markup von der Logik. –

+0

@bub Das ist eine völlig nutzlose Antwort. Beantwortet die Frage nicht und sagt nur dem OP, etwas anderes zu lernen? Warum hast du das Bedürfnis, es zu posten? –

+0

@Giedrius. Sie haben eine Reihe von Variablen mit dem Namen '$ group1' bis '$ group12', die in Ihrer Frage nicht definiert sind. Das ist wahrscheinlich der Grund, warum es nicht für Sie funktioniert, diesen Code in eine Funktion zu stellen. –

Antwort

-1

ich weitere Informationen wirklich die Funktion beschreiben müssen, aber der folgende Code ist mindestens prägnanter:

if ($groupSplit[1] == 1){ 
    $retVal = "<h2>" . $group1 . "</h2>" . isEven($optSplit[1] . "<br><button onclick='window.history.back()'>Start Over</button><button>Confirm and Send</button>") ; 
} 
else{ 
    $retVal = "<h2>" . ${"group".$groupSplit[1]} . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
} 
+0

Warum ein Downvote? –

1

Hat es von mir, war das Problem, dass Funktion vor dem foreach erklärt werden mußte.

<?php 



$answers = array(); 
function isEven($number){ 
    if ($number % 2 == 0) { 
     return "No"; 
    } else { 
     return "Yes"; 
    } 
} 


function showSummary(){ 
$group1 = "q1 ?"; 
$group2 = "q1 ?"; 
$group3 = "q1 ?"; 
$group4 = "q1 ?"; 
$group5 = "q1 ?"; 
$group6 = "q1 ?"; 
$group7 = "Does it archive when Archive is clicked ?"; 
$group8 = "q1 ?"; 
$group9 = "Is an Outlook archiving dialogue open ?"; 
$group10 = "Is Outlook still respnonding ?"; 
$group11 = "Does it happen all the time ?"; 
$group12 = "Do you get an error message ?"; 

foreach ($_POST as $name => $value) { 


    $groupSplit = str_split($name, 5); 
// print_r("Group Num: " . $groupSplit[1] . "<br/>"); 

    $optSplit = str_split($value, 3); // splits opt and the num x 
// print_r("Option Num " . $optSplit[1] . "<br/>"); 



    switch ($groupSplit[1]) { 
    case 1: 
     echo "<h2>" . $group1 . "</h2>" . isEven($optSplit[1] . "<br><button onclick='window.history.back()'>Start Over</button><button>Confirm and Send</button>") ; 
     break; 
    case 2: 
     echo "<h2>" . $group2 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
    case 3: 
     echo "<h2>" . $group3 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>" ; 
     break; 
    case 4: 
     echo "<h2>" . $group4 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
    case 5: 
     echo "<h2>" . $group5 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
    case 6: 
     echo "<h2>" . $group6 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
    case 7: 
     echo "<h2>" . $group7 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
    case 8: 
     echo "<h2>" . $group8 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
    case 9: 
     echo "<h2>" . $group9 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
    case 10: 
     echo "<h2>" . $group10 . "</h2>" . isEven($optSplit[1]). "<br><button onclick='window.history.back()'>Start Over</button>" ; 
     break; 
    case 11: 
     echo "<h2>" . $group11 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
    case 12: 
     echo "<h2>" . $group12 . "</h2>" . isEven($optSplit[1]) . "<br><button onclick='window.history.back()'>Start Over</button>"; 
     break; 
} 
} 






}showSummary(); 

showSummary(); 
?>