【问题标题】:Getting out variable from while loop从while循环中取出变量
【发布时间】:2014-12-24 21:32:51
【问题描述】:

这可能看起来有点奇怪,因为我已经 3 天没睡了,但我答应今天完成脚本,而我是一个筋疲力尽的初学者,呵呵。 我有一个显示图片的循环,每张图片下方都有一个链接。当您单击它时,将显示带有添加评论表单的弹出窗口。但实际上我无法将 cmets 保存到数据库,因为我不知道如何传输变量。 我将用一个简单的伪代码向您展示这一点:

    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...
    }

【问题讨论】:

  • 添加到您的表单中,并在打开表单时更改 $x 上的值。
  • 我想我现在要睡觉了,因为我什么都不懂,伙计们XD谢谢你的回答,明天见!
  • 你有一些显示表单的javascript代码吗?怎么打开?
  • @vladkras 是的,我从互联网上拿了一个弹出 jquery 的东西
  • 这不应该是逐字逐句的,因为你会输出具有相同 ID 的多个元素。这是在你的真实代码中,还是只是问题中的一个错误?

标签: php while-loop


【解决方案1】:

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

这是正在发生的事情:

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

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

【讨论】:

    【解决方案2】:

    您必须通过线程传递$x 的值。首先,您必须确保链接向其目的地提供该值。例如,

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

    那么那个页面就可以使用comment_idGET参数给表单添加隐藏字段了:

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

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

    然后,当您最终设置了$_POST['submit'] 时,您应该能够检索您通过这些交互线程化的comment_id

    【讨论】:

    • 假设表单必须出现在点击图片上而不重新加载页面
    • @vladkras:那么已经有一些 JavaScript 需要修改。但是,问题中没有 JavaScript,并且没有应用 javascript 标记,所以在我知道其他情况之前,我将继续我目前的假设。
    • 由你决定,但我们都知道他正在使用一些 JS 代码来做这件事,他还没有猜到要发帖,因为他现在看不出它有什么帮助
    • 我试图通过输入传递它,但它不是一直发送第一个。我不明白,我的大脑太小了 xD 是的,我在同一页面上做所有事情
    【解决方案3】:

    只需将图片id之类的uniq变量放入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>
    

    【讨论】:

    • 这看起来不错,但我仍然需要将它从 js 脚本发送到 php :D
    猜你喜欢
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    • 1970-01-01
    相关资源
    最近更新 更多