php ilişkisel dizi ve anahtar

2 Cevap php

Benim ilişkisel dizi.

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

My html form set up to handle Quarters, Dimes and Nickels are not shown in this case for brevity.

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

A user can only select either Quarters only, Dimes only, or Nickels only. If a user selects Quarters with the option value of .25, this value will be sent to the php script.

So I was just wondering for calculations based on the fact that the user can select Quarters only with one value, Dimes only with one value, and Nickels only with one value, and not a combination of denominations,

how would one go about setting up different test cases, for example if the user selects $money["Quarters"]; // With different values coming from the html form as .25, .50,.75, or 1, and only one of the selected values will make it through to the php script depending on what the user selected.

Ben bunu yapabilirsiniz:

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”;
}

Ben hala öğrenme ve " ve açısından mix ve maç için üzgünüm, newb yanan değil için teşekkür ederiz.

2 Cevap

Bir formda seçilen değerler $_POST['quarters'] olarak sunulur.

Ben kullanıcı <select> s birden fazla seçtiyse, denetlemek istediğiniz olduğunu anlamak (doğru mu?)

Yani, böyle bir kontrol oluşturmak istiyorum:

$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
}

Burada dikkat birkaç şey var.

Yani, her şeyden önce, sizin $money dizisi kullanıcı gönderen her değerini yakalar.

Daha sonra, HTML kurmak <select> deyimi var yolu, varsayılan değer var. $_POST["quarters"] olacak yılında ilk seçenek .25 kullanıcı bu Pulldown asla dokunmaz bile. Bunu önlemek için, Quarters eklemek isterim <select>:

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

Ama yine de bu bir switch / case deyimi kullanmak için izin vermez. Hala HER HTML <select> etiketi için bir değer göndererek için gidiyoruz. Onlar sadece bir kullanılır ve onlar yoksa belki de bir mesaj görüntüler emin olun, her Pulldown denetler beri ApoY2k çözümü, daha iyidir.

Sonunda ... $selection sizin örnekte ne ifade eder bilmiyorum. Sen $money dizi doldurmamak konum, yani $selection değişkeni yok.

Sorunuzu netleştirmek eğer ben daha fazla yardımcı olabilir.