2009-12-02 4 views
0

내 연관 배열. 분기, 센트 및 니켈을 처리하도록 설정PHP 연관 배열 및 스위치

$money = array("Nickels" => $_POST["nickels"], "Dimes" => $_POST["dimes"], "Quarters" =>$_POST["quarters"]); 

내 HTML 폼이 간결이 경우에는 표시되지 않습니다.

<label><b>Quarters:</b></label> 
<select name="quarters" > 
<option value=".25">25c</option> 
<option value=".50">50c</option> 
<option value=".75">75c</option> 
<option value="1">$1.00</option> 
</select> 

사용자는 분기 만, 단만 또는 니켈 만 선택할 수 있습니다. 사용자가 옵션 값 0.25로 분기를 선택하면이 값은 PHP 스크립트로 전송됩니다.

그래서 난 그냥 사용자가 숙소를 선택할 수 있다는 사실을 기반으로 계산 궁금해서 하나 개의 값, 10 센트 단지 하나 개의 값 및 니켈 하나 개의 값, 그리고 교단의 조합으로

사용자가 다른 테스트 케이스를 설정하는 방법 (예 : 사용자가 $money["Quarters"];을 선택하는 경우) // html 형식의 값이 .25, .50, .75 또는 1 인 경우와 선택한 경우 중 하나만 값은 사용자가 선택한 항목에 따라 PHP 스크립트로 전달됩니다.

나는이 작업을 수행 할 수 있습니다

switch($selection) 
{ 
     case “Quarters”: 
      echo “ You chose $money[‘Quarters’]; .<br />”; 
      break; 
     case “Nickels”: 
      echo “You chose $money[‘Nickels’]; .<br />”; 
       break; 
     case “Dimes”: 
      echo “You chose $money[‘Dimes’]; . <br />”; 
        break; 
default: print “Please select a Denomination”; 
} 

이 newb 불타는하지 주셔서 감사합니다, 나는 아직도 배우고, 그리고 "의 측면에서 믹스 앤 매치에 대한 죄송합니다.

답변

2

양식에서 선택한 값은 $_POST['quarters']으로 제출됩니다.

본인은 사용자가 <select>의 두 개 이상 선택한 경우, 확인하고 싶은 것을 이해

그래서,이 같은 체크 만드는 것 (올바른을?) :

$selected = 0; 

if ($_POST['quarters'] != "DEFAULT_VALUE_OF_YOU_SELECT_QUARTERS") 
{ 
$selected++; 
} 

if ($_POST['nickels'] != "DEFAULT_VALUE_OF_YOU_SELECT_NICKELS") 
{ 
$selected++; 
} 

if ($_POST['dimes'] != "DEFAULT_VALUE_OF_YOU_SELECT_DIMES") 
{ 
$selected++; 
} 

if ($selected > 1) 
{ 
// The user has selected more than one 
} 
+0

if 구조를 주셔서 감사합니다. 사용자가 주어진 시간에 여러 화폐 단위를 하나만 선택하는 것을 제한하는 방법이 있습니까? 예를 들어, 주어진 순간에 사용자는 쿼터가 아닌 단지 쿼터와 다른 조합을 사용할 수 있어야합니다. – Newb

+0

사용자가 하나의 옵션 만 가질 수 있도록 ($ selected to <= 1) if를 변경할 수 있습니까? 나는 사용자가 다른 옵션을 선택하게하고 싶지 않습니다. 이것은 양식에 대한 회계를 시작해야하는 다른 값에 대한 계산을 엉망으로 만들 수 있습니다. – Newb

+0

도움을 청하는 마음이 생기지 않을 것입니다. – Newb

0

여기에 유의해야 할 몇 가지 사항이 있습니다.

먼저, $money 배열은 사용자가 제출하는 모든 값을 캡처합니다.

다음으로 HTML <select> 문을 설정하는 방법에는 기본값이 없습니다. $_POST["quarters"]의 첫 번째 옵션은 사용자가 해당 풀다운을 절대 건드리지 않더라도 .25입니다.

<option value="0">-- Select Quarters --</option> 

을하지만 여전히 당신은 스위치/case 문을 사용할 수 없습니다 :이 문제를 방지하려면 분기 <select>에 추가 할 것입니다. 여전히 모든 HTML <select> 태그에 값을 제출할 예정입니다. Florian Peschka의 솔루션은 모든 풀다운을 확인하고, 하나만 사용했는지 확인하고, 그렇지 않은 경우 메시지를 표시하므로 더 좋습니다.

마지막으로 ... 귀하의 예에서 무엇을 말하고 싶은지 모르겠군요. $selection. $money 배열을 채우고 있으므로 $selection 변수가 없습니다.

질문을 명확히하면 더 도움이 될 수 있습니다.

+0

처음에는 if, else 및 else if를 사용하려고했지만 스위치를 사용할 수 있기를 바랬습니다. 내가 알고 싶었던 것은 사용자가 선택한 값이고 그 값에 대한 계산입니다. – Newb

+0