validate the form with variables, php [duplicate]

2019-09-03 13:22发布

问题:

This question already has an answer here:

  • Get the values from $i , with disturbed order 1 answer

I have asked a question here Get the values from $i , with disturbed order

Below is rephrased version of this question.

 for ($i = 0; $i < count($offername); $i++) 
       {

echo "<tr><td>$name[$i]</td><td>$kind[$i]</td><td>$type[$i]</td>
<td><input type='submit' value='Purchase' name='$name[$i]'></td></tr>";
        }

$name[$i] = name1, name2, name3 , name4 , name5 , name6

How do I validate the form w.r.t  $name[$i]. [ name='$name[$i]' ]

if (isset($_REQUEST['$name[$i]'])) {echo "$name[$i] selected";}

This isset gives me no output.

But If I use the values stored with in $name[$i] , it works fine.

if (isset($_REQUEST['name1'])) {echo "name1 selected";}
if (isset($_REQUEST['name2'])) {echo "name2 selected";}
if (isset($_REQUEST['name3'])) {echo "name3 selected";}
if (isset($_REQUEST['name4'])) {echo "name4 selected";}
if (isset($_REQUEST['name5'])) {echo "name5 selected";}
if (isset($_REQUEST['name6'])) {echo "name6 selected";}

Desired Output.

 if (isset($_REQUEST['$name[$i]'])) 
            {
         echo "$name[$i] selected , Kind: $kind[$i] type= $type[$i]" ; 
            }

回答1:

try:

if $name[$i] is an array ie, [name1, name2, name3 , name4 , name5 , name6] the you can do:

foreach($name[$i] as $name){
    if (isset($_REQUEST[$name])) {echo "$name selected";}
}

or else if $name[$i] is a string ie, name1, name2, name3 , name4 , name5 , name6 you can explode it first using $name[$i]=explode (',',$name[$i]) and then use the same foreach loop mentioned above

or if your question is wrong and $name[$i] is just a reference to $name array you can do something like:

for($i=0 ;$i<=count($name);i++){
    if (isset($_REQUEST[$name[$i]])) {echo "$name[i] selected";}
}


回答2:

try this

if (isset($_REQUEST['$name['.$i.']'])) {echo "$name["'.$i.'"] selected";}