2009-11-23 4 views
0

분명히 SELECT 요소 당 하나의 유형의 데이터를 보내는 비효율적 인 형식의 양식이 있습니다. 간단히하기 위해, 여기에 예제가 있습니다.스팅 데이터를 기반으로 변수 할당

두 개의 SELECT 요소에서 데이터를 게시하지만 실제로는 3 개의 데이터가 있어야합니다. 사용자에게 SELECT do에는 3 개의 데이터가 포함됩니다. 하나의 SELECT는 수량을 나타내며 다른 SELECT는 항목 이름을 나타내며 OPTION 태그 사이의 텍스트를 사용하여 가격을 나타냅니다.

그래서, 양식 I 누락 된 가격으로 제공하기 위해 IF를 잔뜩 또는 스위치를 구성하기 위해 노력하고, 처리에 단지 $ 수량 및 $ itemName에

을 보내고있다. $ itemname과 관련된 문자열이 고유하므로 가격을 제공하는 "키"를 만들려고합니다. $ itemName에가 "1 인치 너트"가 포함되어있는 경우 내 논리는 내가 좋아하는 뭔가 $의 가격에 찾을 수있다 :

if ($itemname = "Once Inch Nut;") { $price = .25; } 

그리고 $ itemName에 뭔가 다른 있다면, 내가 추가 할 또 다른 IF를하거나에서 IF 다른 사람 또는 CASE 스위치.

사실, 난 그냥 그 일을하고, 아직 내가 선택 $의 가격도 $ 항목 이름에서 다른 옵션을 선택하면 마지막으로 정의됩니다 "IF" "IF를"

내 스택

그래서 내가 20 항목 SELECT 그룹의 세 번째 항목을 선택했다면, "IF 스택"의 끝으로 끝날 것이라고 (추가, 에코, 뭐든간에) 변수를 사용하는 시간이 왔을 때

분명히 IE ELSEIF ELSE에 대한 나의 논리와 이해에는 결함이 있습니다.

변수의 문자열 데이터에서이 "키"를 만드는 방법에 대한 아이디어는 무엇입니까?

덕분에, 롭

일하는 것이 내가 을 어떻게 생각의 요약 된 예는 아래를 참조하십시오 :

$ itemName에 대한 양식 게시물 "고양이"를 가정하고 "3"$ 수량

에 대한
<? 
$itemname = $_POST['specificitem'] ; 
$qty = $_POST['quantity'] ; 

if ($itemname = "cat;") { $price = 2.25; } 
if ($itemname = "dog;") { $price = 1.25; } 
if ($itemname = "hamster;") { $price = 3.25; } 
if ($itemname = "parakeet;") { $price = 7.25; } 
if ($itemname = "werewolf;") { $price = 122.25; } 

echo $itemname; 
echo "$"$price; 

?> 

수율 : cat $ 2.25 ????

+0

데이터의 종류는 무엇입니까? "록산느"처럼? – markus

답변

2

당신은 시험에 == 필요합니다

$itemname = $_POST['specificitem'] ; 
$qty = $_POST['quantity'] ; 

switch($itemname) 
{ 
    case "cat;": 
    $price = 2.25; 
    break; 
    case "dog;": 
    $price = 1.25; 
    break; 
    case "hamster;": 
    $price = 3.25; 
    break; 
    case "parakeet;": 
    $price = 7.25; 
    break; 
    case "werewolf;": 
    $price = 122.25; 
    break; 
} 

echo $itemname; 
echo "$"$price; 
+0

OMG. Duhhh .. 감사합니다 Ewan. ;) –

1

난 당신이 이것에 대한 "테이블"approch를 사용하는 것이 좋습니다 :

if ($itemname == "cat;") { $price = 2.25; } 

그러나, 이러한 유형의 상황에 사용 switch를 참조하는 것이 일반적이다 암호. 항목 이름별로 가격을 나타내는 배열을 만듭니다. 그리고 다음과 같이 한 줄의 가격을받을 :

<? 
$itemname = $_POST['specificitem'] ; 
$qty = $_POST['quantity'] ; 

## creating a price "table" 
$item_prices = array(
    'cat;' => 2.25, 
    'dog;' => 1.25, 
    ## adding more is easy here 
); 
if (array_key_exists($itemname, $item_prices)) { 
    ## get price in single line 
    $price = $item_prices[$itemname]; 
} 
else { 
    ## set some default price if item is unknown 
} 

echo $itemname; 
echo "$",$price; 

?> 

나중에 당신은 당신이 필요로하는 경우 select 태그에 대한 옵션을 생성하는 $item_prices를 사용할 수 있습니다.

+0

감사합니다 이반 ... 확실히 멋진 방법. 너의 논리를 느낀다. –