2015-08-27 3 views
0

привет, пожалуйста, помогите мне, у меня есть проблема с выводом всех значений флажка, который выводит только один, мне нужно показать все отмеченные флажки и вывести их, пожалуйста, помогите мне вот код, который он показывает только каждый раз я проверил их все мне нужна этаКак вывести все значение флажка

<html> 
    <head> 
     <title>Cake Form</title> 
     <link rel="stylesheet" href="cakeform.css"> 
    </head> 
    <body> 
    <?php 

     $nameErr = $addErr = $phoneErr = $scake = $flavorcake = $fill = ""; 
$name = $address = $phone = $rcake = $fillr = $cakeflavor = ""; 


if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    if (empty($_POST["name"])) { 
    $nameErr = "Name is required"; 
    } else { 
    $name = test_input($_POST["name"]); 
    } 

    if (empty($_POST["address"])) { 
    $addErr = "Email is required"; 
    } else { 
    $address = test_input($_POST["address"]); 
    } 

    if (empty($_POST["phone"])) { 
    $phoneErr = "Gender is required"; 
    } else { 
    $phone = test_input($_POST["phone"]); 
    } 
    if(isset($_POST['SelectedCake'])){ 
     $x=$_POST['SelectedCake']; 

    } 
    if(isset($_POST['CakeFlavor'])){ 
     $y=$_POST['CakeFlavor']; 

    } 
    if(isset($_POST['Filling'])){ 
     $z=$_POST['Filling']; 

    } 
    if(empty($x)){ 
     $scake='Select one Cake'; 


    }else{ 

     $rcake= $x; 

    } 
    if(empty($y) OR $y == 'Flavor'){ 
     $flavorcake='Select one flavor'; 


    }else{ 

     $cakeflavor= $y; 

    } 
    if(empty($z)){ 
     $fill='Select at least one Fillings'; 


    }else{ 
     foreach($z as $item){ 
      $fillr=$item; 

     } 


    } 



} 
function test_input($data) { 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 


    ?> 
    <div id="wrap"> 
     <div class="cont_order"> 
     <fieldset> 
     <legend>Make your own Cake</legend> 
    <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post"> 
     <h4>Select size for the Cake:</h4> 
     <input type="radio" name="SelectedCake" value="Round6">Round cake 6" - serves 8 people</br> 
     <input type="radio" name="SelectedCake" value="Round8">Round cake 8" - serves 12 people</br>  
     <input type="radio" name="SelectedCake" value="Round10">Round cake 10" - serves 16 people</br> 
     <input type="radio" name="SelectedCake" value="Round12">Round cake 12" - serves 30 people</br> 
<span class="error">*<?php echo $scake;?></span>   
     <h4>Select a Cake Flavor: </h4> 
     <select name="CakeFlavor"> 
      <option value="Flavor" selected="selected">Select Flavor</option> 
      <option value="Carrot" >Carrot</option> 
      <option value="Chocolate" >Chocolate</option> 
      <option value="Banana" >Banana</option> 
      <option value="Red Velvet" >Red Velvet</option> 
      <option value="Strawberry" >Strawberry</option> 
      <option value="Vanilla" >Vanilla</option> 
      <option value="Combo" >Combo</option> 
     </select> 
     <span class="error">*<?php echo $flavorcake;?></span> 
     <h4>Select Fillings:</h4> 
     <label><input type="checkbox" name="Filling[]" value="Cream"/>Cream</label><br> 
     <label><input type="checkbox" name="Filling[]" value="Fudge"/>Fudge</label><br> 
     <label><input type="checkbox" name="Filling[]" value="Ganache"/>Ganache</label><br> 
     <label><input type="checkbox" name="Filling[]" value="Hazelnut"/>Hazelnut</label><br> 
     <label><input type="checkbox" name="Filling[]" value="Mousse"/>Mousse</label><br> 
     <label><input type="checkbox" name="Filling[]" value="Pudding"/>Pudding</label><br> 
     <span class="error">*<?php echo $fill;?></span> 
     </fieldset> 
     </div> 
     <div class="cont_order"> 
     <fieldset> 
     <legend>Contact Details</legend> 
     <label for="name">Name</label><br> 
     <input type="text" name="name" id="name"><span class="error">*<?php echo $nameErr;?></span> 
     <br> 
     <label for="address">Address</label><br> 
     <input type="text" name="address" id="address"><span class="error">*<?php echo $addErr;?></span> 
     <br> 
     <label for="phonenumber">Phone Number</label><br> 
     <input type="text" name="phone" id="phone"><span class="error">*<?php echo $phoneErr;?></span><br> 
     </fieldset> 
     <input type="submit" name="submitted" id="submit" value="Submit"/> 
     </div> 
     </form> 
     <div class="cont_order"> 
     <?php 

      echo $name.'<br>'; 
      echo $address.'<br>'; 
      echo $phone.'<br>'; 
      echo $rcake.'<br>'; 
      echo $cakeflavor.'<br>'; 
      echo $fillr.'<br>'; 


     ?> 

     </div> 
     </div> 


     </body> 
</html> 

ответ

0

Факт, вы принимаете список для заполнения. В своем коде вы это делаете:

foreach($z as $item){ 
    $fillr=$item; 
} 

Заменить его:

$fillr = ''; 
foreach($z as $item){ 
    $fillr .= '- ' . $item . '<br/>'; 
} 

Он должен работать лучше.


Для комментария:.

#so let's say $z is an array : 

$z = [1,2,3,4]; 

#then you say, for each element of the array as you will call $item, I do something 

foreach($z as $item){ 
    $fillr=$item; #here you say : for each element of $z (1,2,3,4), I put this value into $fillr. 
} 

#so let's do the loop together. 
# First pass, $item == 1, so $fillr == 1. 
# Second pass, $item == 2, so $fillr == 2. 
# ... 
# Last pass, $item == 4, so $fillr == 4. 

# so then when you show $fillr it's the last item of the list (here 4). 


# using PHP, .= means concatenate. 
# for instance : 
$a = "hello "; 
$a .= "world"; 
echo $a; 

> hello world 


So basically, what I'm doing is : 
Having an empty string I'll call $fillr. 
For every element of the list, 
    Append "the_element plus a <br/>" to $fillr 

so then when you output $fillr it looks sexy. 


Do you get it bud? 
+0

пожалуйста, объясните мне более простой способ у ваш код работает, пожалуйста, рефрактор ур код MEK это больше понимания для меня то, что делает = делать ?? небольшая разница, и он работает, пожалуйста, объясните мне это мне легче, новичок –

1

Вы можете сделать это:

var_dump($_POST['Filling']); 

Или просто это:

<?php 
if(!empty($_POST['Filling'])) { 
    foreach($_POST['Filling'] as $check) { 
      echo $check;  
    } 
} 
?> 

Сообщите мне, если это будет работать =)

Смежные вопросы