0

我在将值$result从不同页面传递到另一个页面时遇到问题。

当我POST进入$result这个页面的时候。它工作正常,我回应它。

但是如果我尝试将其传递$resultisset()表单并将其发回给自己。
该值将成为未定义的索引。

第 1 页

<?PHP
$connect=mysql_connect('localhost', 'root', '');
$db=mysql_select_db('survey', $connect);
$SQL="SELECT * FROM question";
$data=mysql_query($SQL);
$num=mysql_num_rows($data);

$start=0;
?>


<style type="text/css">
#survey{
    width:100%; height:50px;
    background:#e6e6e6; border-bottom:solid 1px white;
    }

#survey form{
    position:relative;
    left:320px; top:15px;
    float:left;
    }

#survey form a{
    text-decoration:none;
    color:black;
    }

.submit{
background-color: transparent;
border: none;
cursor: pointer;
}

</style>

<html>
<div id="container">

<?PHP
if($num<3){
    echo "
    <div id='create'><a href='question.php'>+ Create a Survey</a></div>
    ";
}
?>


<?PHP 
while($start<$num){
    $result=mysql_result($data, $start, 'ID');
    $list_num=$start+1;

        $ID=$result['ID'];

        $list="
            <div id='survey'>
                <span style='font-size:24px; color:gray; position:relative; float:left; left:10px; top:13px;'>
                SURVEY 0$list_num
                </span>

                <form action='survey.php' method='POST'>
                    <input class='submit' type='submit' name='submit1' value='View' />
                    <input type='hidden' name='result' value='$ID'/>
                </form>

                <form action='update.php' method='POST'>
                    <input class='submit' type='submit' name='submit2' value='Edit' />
                    <input type='hidden' name='result' value='$ID'/>
                </form>             

                <form action='delete.php' method='POST'>
                    <input class='submit' type='submit' name='submit3' value='&#10005 Delete' />
                    <input type='hidden' name='result' value='$ID'/>
                </form>

            </div>  
        ";

    echo $list;
    $start++;
    }
?>

</div>
</html>

第2页

    <?PHP
    $result=$_POST['result'];

    $error="";
    if(isset($_POST['submit'])){
        $question=$_POST['question'];
        $answer_a=$_POST['a'];
        $answer_b=$_POST['b'];
        $answer_c=$_POST['c'];


        if($question && $answer_a && $answer_b && $answer_c){
            $connect=mysql_connect("localhost", "root", "");
            $db=mysql_select_db("survey", $connect) or die("");

            $SQL="UPDATE question SET question='$question', answer_a='$answer_a', answer_b='$answer_b', answer_c='$answer_c'
            WHERE ID='$result'";
            mysql_query($SQL);
            $SQL="UPDATE answer SET question='$question', answer_a='0', answer_b='0', answer_c='0'
            WHERE ID='$result' ";
            mysql_query($SQL);
            header("location:create.php");
        }
        else{$error="<div style='color:white; background:gray; width:200px; height:20px; text-align:center; line-height:20px;'>" 
        . "Please fill all the field." . "</div>";}
    }


    ?>
<style>
body{
    font-family:Arial, Helvetica, sans-serif;
    font-size:14px;
    }

</style>

<html>
<form action="update.php" method="POST">
Question<br /><input type="text" name="question" placeholder=" Enter your question here" maxlength="50" /><br/><br/>Answer<br/>
a<input type="text" name="a" placeholder=" Answer a" maxlength="50"/>
b<input type="text" name="b" placeholder=" Answer b" maxlength="50"/>
c<input type="text" name="c" placeholder=" Answer c" maxlength="50"/>
<input type="submit" name="submit" value="SAVE"/>
</form>
<?PHP echo $error; ?>
</html>
4

2 回答 2

0

尝试在第 2 页上编辑这个

<html>
<form action="update.php" method="POST">

对此

<html>
<form action="" method="POST">
于 2012-12-24T13:15:24.400 回答
0

大家好,非常感谢您的帮助我找到了解决方案我认为问题是当我将值传递给 2nd form 时,我需要再次重新发送值。这就是我所做的。第一个来自上一页,第二个是表单发布到自身 if(isset($_POST['result'])){ $result=$_POST['result']; 回显$结果;}

if(isset($_POST['data'])){
    $ID=$_POST['data'];
    echo $ID;
    }

添加另一个隐藏在表单中并重新发送值

<input type="hidden" name="data" value="<?PHP echo $result;?>"/>

更改mysql值

WHERE... ID='$ID'";
于 2012-12-24T23:51:11.920 回答