从while循环中获取变量

时间:2014-12-24 03:00:37

标签: php while-loop

这可能看起来有点奇怪,因为我现在已经睡了3天但是我答应今天完成剧本,而我是一个精疲力竭的初学者吧。 我有一个循环显示图片,下面每张图片都是一个链接。单击它时,会显示添加注释表单的弹出窗口。但实际上我有问题将注释保存到数据库,因为我不知道如何传输变量。 我将在一个简单的伪代码中向您展示:

    while(lets_say_50){
      $x = picture;
      echo $x;
      echo "<a href>links opening popup with comment form</a>
           <div id='popup'>
           <form>
           <textarea> some comment </textarea>
           <input type='submit' method='post'>
           </form>
           </div>"
    }

    if(isset($_POST['submit'])){
     //here i want to get $x value from above, but it must be exactly the one from the actual loop turn.
     //whatever i do, it always gives me the $x from the last picture...
    }

3 个答案:

答案 0 :(得分:1)

这是因为您要覆盖$x的值。

这就是发生的事情:

$x = Firstpicture;
$x = Secondpicture:
$x = Lastpicture3;

$x将始终等于分配给它的最后一个值。

答案 1 :(得分:0)

只需将一个uniq变量(如图片ID)放入href

即可
 while(lets_say_50){
    $x = picture;
    echo $x;
    echo "<a href='link/#IMAGE_ID'>links opening popup with comment form</a>"
 }

然后在弹出窗口中有一些javascript来读取哈希并将其放入隐藏变量中

<form method="post" action="post_comment.php">
    <textarea> some comment </textarea>
    <input type='submit' >
    <input name="imageid" id="image_id" name="image_id" type="hidden" value=""/>
</form>

<script>
   document.getElementById('image_id').value=document.location.hash;
</script>

答案 2 :(得分:0)

你必须通过$x来解决这个问题。首先,您必须确保链接将该值提供给其目标。例如,

<a href="post_comment.php?comment_id=5">reply</a>

然后该页面可以使用comment_id GET参数向表单添加隐藏字段:

<input type="hidden" name="comment_id" value="5">

(或者,如果您要发布到同一页面(看起来很像),则可以省略隐藏字段并再次在查询字符串中传递注释ID。)

然后,当您最终设置$_POST['submit']时,您应该能够检索已经通过这些互动进行线索的comment_id