【问题标题】:Passing variable from within while loop to popupdiv将变量从while循环中传递到popupdiv
【发布时间】:2014-10-07 05:37:58
【问题描述】:

我有一个显示 SQL 表值的表。在每一行中都有一个下拉菜单,可让您选择要执行的操作。当您选择操作并单击“ go',它会弹出一个表单,我希望能够将 $id 变量从表传递到弹出 div 表单,然后传递到下一个弹出页面。 ID 在下拉列表中正确显示,但是当它显示 div 时,它显示的 id 不正确(它显示表格的第一个 id,而不是所选下拉列表的 id)。

这是 php

    while($row = mysql_fetch_array($proposal_result)) {
            $date=substr($row["date"], 0, 50);
            $formatted_date=date('d/m/Y', strtotime($date));
            $id=substr($row["idproposal"], 0, 50);
            $businessname=substr($row["businessname"], 0, 50);
            $status=substr($row["status"], 0, 50);
            $staff=substr($row["staff"], 0, 50);
            $file_access='<bucket-location>';
            $file_name='proposal_'.$id.'_'.$businessname.'.pdf';
            $file=$file_access.$file_name;
            print "<tr><td>".$formatted_date."</<td>
            <td>".$id."</td>
            <td width='25px'><a href='".$file."'target='_blank'><img src='".$images."/attachment.png' alt='file'></a></td>
            <td>".$businessname."</td><td>".$staff."</td>
            <td>".$status."</td>
            <td>
                    <div>
                        <select id='zb-admin-dropdown' name='zb-admin-dropdown' class='dropdowns'  required>
                            <option value='0'>Select and action...*</option>
                            <option value='1'>Change Status for ID#".$id."</option>
                            <option value='2'>Delete Proposal</option>
                        </select>
                    <input type='submit' id='report-submit' value='Go' onclick='displayDiv()'></div>

                    </td></tr>";
        }

Javascript

function displayDiv() {
    e=document.getElementById("zb-admin-dropdown");
    strUser=e.options[e.selectedIndex].value;
    if (strUser=='1') {
        document.getElementById('abc').style.display = "block";     
    }
    if (strUser=='2') {
        document.getElementById('def').style.display = "block";
    }
}

弹出框

print "<div id='abc'>
                <div id='popup'>
                    <form name='changestatus' action='' method='post'>
                        <!--<img id='close' src='images/3.png'> CLOSE ICON-->
                        <h2>Change Status for ".$id."</h2>
                        <hr>
                        <textarea name='deletecomments' placeholder='Comments...'></textarea><br />
                        <a href='/delete?id=".$id."&businessname=".$businessname."'><input type='button' id='report-submit' value='Delete Proposal'></a><a href='/zerobooks-admin-dashboard'><input type='button' id='report-submit' value='Cancel'></a>
                    </form>
                </div>
            </div>";
print "<div id='def'>
                <div id='popup'>
                    <form name='deletefeedback' action='' method='post'>
                        <!--<img id='close' src='images/3.png'> CLOSE ICON-->
                        <h2>Reason for deleting proposal <br />".$id."</h2>
                        <hr>
                        <input id='deletereason' type='radio' name='deletereason' class='radio' value='Added by mistake'>Added by mistake<br />
                        <input id='deletereason' type='radio' name='deletereason' class='radio' value='Added by mistake'>No longer required<br />
                        <input id='deletereason' type='radio' name='deletereason' class='radio' value='Added by mistake'>Incorrect Information Provided<br />
                        <input id='deletereason' type='radio' name='deletereason' class='radio' value='Added by mistake'>Reason 4<br />
                        <textarea name='deletecomments' placeholder='Comments...'></textarea><br />
                        <a href='/delete?id=".$id."&businessname=".$businessname."'><input type='button' id='report-submit' value='Delete Proposal'></a><a href='/zerobooks-admin-dashboard'><input type='button' id='report-submit' value='Cancel'></a>
                    </form>
                </div>
            </div>";

我的目标几乎是将正确的 ID 传递给 popupdiv。任何帮助,将不胜感激。您可以忽略 popupdiv 表单的内容。

【问题讨论】:

  • 您的页面上有多个 id="zb-admin-dropdown" 的&lt;select&gt;s。这是无效的,ID 必须是唯一的。
  • 您是否为所有选择添加了相同的 ID?即 zb-admin-dropdown 如果是这样,那么这至少是您问题的一部分。您需要给他们一个唯一的 ID,否则计算机如何知道您的意思。
  • 是的,这是我的问题之一。这部分解决了我的问题。第二个问题通过以下解决方案解决。

标签: javascript php html variables input


【解决方案1】:

在您的 html 中,您在单击按钮时调用该函数。在函数调用中传递变量。所以:

<input type='submit' id='report-submit' value='Go' onclick='displayDiv(' + $id + ')'></div>

然后让 javascript 函数接受输入:

function displayDiv(divId) { ...

并在 javascript 中使用它。但问题是,php 是服务器端,而 javascript 是客户端。因此,要将信息获取到服务器端 php,您需要发出 http 请求。

我看不到所有代码在哪里,但您可以尝试几种解决方法,只需最少的重构。首先,在显示 div 元素后,您可以让 javascript 更新 href 标签:

 `document.getElementById(/*a_element's_id*/).href=''+divId`  

否则,我不是 php 专家,但我认为如果 php 脚本位于同一范围内,那么两个 php 脚本都可以访问全局变量或全局静态变量?

就我个人而言,我会使用所有 javscript! :) 祝你好运

【讨论】:

    猜你喜欢
    • 2023-04-07
    • 1970-01-01
    • 2014-01-17
    • 2019-08-13
    • 2023-03-17
    • 2017-05-02
    • 2019-12-31
    • 2019-11-29
    • 1970-01-01
    相关资源
    最近更新 更多