开发者

"Undefined index" when quoting array key

开发者 https://www.devze.com 2023-01-01 17:01 出处:网络
I have a form in index.php <?php echo \'<form action=\"update_act.php\" method=\"POST\">\'; echo \'<input type=\"submit\" name=\"\'.$row[\'act_name\'].\'\" value=\"edit\">

I have a form in index.php

<?php 
  echo '<form action="update_act.php" method="POST">';
  echo '<input type="submit" name="'.$row['act_name'].'" value="edit">
  echo </form>
?>

Here $row['act_name'] is a value fetched from database.

My update_act.php file is

<?php
   echo "Old Activity Name : ".$_POST['$row[\'act_name\']'];
?>

Bu开发者_如何转开发t I am getting an error Undefined index: $row['act_name'] in C:\wamp\www\ps\activity\update_act.php.

I want to have different names for different submits but I am not able to get its value in another page. Is there any way for it?


I don't exactly know, what you're trying to do, but if the value of variable $row['act_name'] is same in both of the cases (form page and update script), then you can access to that this way:

echo "Old Activity Name : ".$_POST[$row['act_name']];


PHP only substitutes variables enclosed in double quotes " . What you want is:

echo "Old Activity Name : ". $_POST[$row['act_name']]

But your whole form does not make any sense. The output you get would be:

Old Activity Name : edit

because this is the value of the submit button.

Can you please clarify your question, what do you want to achieve? Here are some thoughts from my side:

Maybe what you want is more like:

<form action="update_act.php" method="POST">;
    <input type="hidden" name="act_name" value="<?php echo $row[act_name] ?>" />
    <input type="submit" name="submit" value="edit">
</form>

// ---- other file ---

<?php
   echo "Old Activity Name : ".$_POST['act_name'];
?>

Why do you want to have different names for different submits ?
Do you want to differentiate between different actions? If so, it is easier you the buttons have the same name and you check against their values, e.g.:

<form action="update_act.php" method="POST">;
    <input type="submit" name="submit" value="edit">
</form>

<form action="update_act.php" method="POST">;
    <input type="submit" name="submit" value="delete">
</form>

and then

<?php 
if($_POST['submit'] == 'edit') {

}
else if ($_POST['submit'] == 'delete') {

}


Use $_POST[$row['act_name']].


   echo "Old Activity Name : ".$_POST['$row[\'act_name\']'];

should be

   echo "Old Activity Name : ".$_POST["$row[act_name]"];

or

   echo "Old Activity Name : ".$_POST[$row[act_name]];
0

精彩评论

暂无评论...
验证码 换一张
取 消