【问题标题】:PHP pass a separate table value through URLPHP 通过 URL 传递一个单独的表值
【发布时间】:2019-01-31 03:03:00
【问题描述】:

我已经尝试解决这个问题一段时间了,所以任何帮助都将不胜感激。

我有一个循环显示记录的 HTML 表格。最后两列是批准或拒绝超链接(每个都为相应的操作运行不同的脚本。这会通过 URL 传递票号的 .row 数据(工作正常)。

我现在所做的是预先添加一个包含文本区域的列,我希望在单击链接时也可以使用该文本区域添加 cmets 并将 cmets 发送到下一页。我已经尝试过 PHP 和 Javascript 通过 id 获取元素,但似乎无法使其工作。我正在尝试传递 id="feedback_cmets"

while ($row = sqlsrv_fetch_array($stmt)){
        echo "<tr>";
        echo "<td class='open_inc_table'>" . "<a href='view_ticket.php?ticket_id=" . $row['ticket'] . "'>" . $row['ticket'] . "</a>" . "</td>";
        echo "<td class='open_start_table'>" . date_format($row['start_date'],"d/m/Y H:i:s") . "</td>";
        echo "<td class='open_start_table'>" . date_format($row['end_date'],"d/m/Y H:i:s") . "</td>";
        echo "<td class='open_priority_table'>" . $row['priority'] . "</td>";
        echo "<td class='open_priority_table'>" . $row['category'] . "</td>";
        echo "<td class='open_priority_table'>" . $row['system'] . "</td>";
        echo "<td class='open_description_table'>" . $row['description'] . "</td>";
        echo "<td class='open_description_table'>" . $row['resolution'] . "</td>";
        echo "<td class='open_description_table'>" . '<textarea rows="5" cols="50" id="feedback_comments"></textarea>' . "</td>";
        echo "<td class='open_system_table'>" . "<a href='ticket_feedback_approve.php?inc_id=" . $row['ticket'] . "&feedback_comments=" . "'>" . 'Approve' . "</a>" . "</td>";
        echo "<td class='open_system_table'>" . "<a href='ticket_feedback_reject.php?inc_id=" . $row['ticket'] . "'>" . 'Reject' . "</a>" . "</td>";
        echo "</tr>";
    }
        echo "</table>";

【问题讨论】:

  • 当你通过 url 说你的意思是使用 $_GET['feedback_cmets'] 吗?您可以使用 $GET_['url_value'] 获取 url 值
  • 没错,我在下一页有 GET,它可以毫无问题地捕获 Ticket 但是找不到捕获 cmets 的方法
  • Ofc,你有&amp;feedback_comments=" . "。它永远是空的。
  • 把它留在那里,因为这就是我试图获得评论数据的地方。之后 。尝试了几种不同的方法来让 cmets 到达那里,但似乎无法让它工作
  • 您说“事先添加了一列,其中包含我希望用来添加 cmets 的文本区域”,您不能使用此列吗?喜欢$row['comments'] 吗?还是我还是没听明白?

标签: php url html-table hyperlink


【解决方案1】:

为锚标记提供 id。编写一个函数来获取 textarea 的值并使用 setAttribute 函数更新锚标记的 href 属性。使用 onkeydown 事件执行函数,并将票证作为 updateHref 函数的参数传递。

while ($row = sqlsrv_fetch_array($stmt)){
    echo "<tr>";
    echo "<td class='open_inc_table'>" . "<a href='view_ticket.php?ticket_id=" . $row['ticket'] . "'>" . $row['ticket'] . "</a>" . "</td>";
    echo "<td class='open_start_table'>" . date_format($row['start_date'],"d/m/Y H:i:s") . "</td>";
    echo "<td class='open_start_table'>" . date_format($row['end_date'],"d/m/Y H:i:s") . "</td>";
    echo "<td class='open_priority_table'>" . $row['priority'] . "</td>";
    echo "<td class='open_priority_table'>" . $row['category'] . "</td>";
    echo "<td class='open_priority_table'>" . $row['system'] . "</td>";
    echo "<td class='open_description_table'>" . $row['description'] . "</td>";
    echo "<td class='open_description_table'>" . $row['resolution'] . "</td>";
    echo "<td class='open_description_table'>" . '<textarea rows="5" cols="50" id='feedback_comments' onkeydown='updateHref(\"" . $row['ticket'] . "\")'></textarea>' . "</td>";
    echo "<td class='open_system_table'>" . "<a id="approve-link">" . 'Approve' . "</a>" . "</td>";
    echo "<td class='open_system_table'>" . "<a href='ticket_feedback_reject.php?inc_id=" . $row['ticket'] . "'>" . 'Reject' . "</a>" . "</td>";
    echo "</tr>";
}
    echo "</table>";

这里是更新批准链接href的功能

function updateHref(ticket) {
    var comment = document.getElementById("feedback_comments").value;
    document.getElementById("approve-link").setAttribute('href', 'ticket_feedback_approve.php?inc_id=' + ticket + '&feedback_comments=' + comment);
}

【讨论】:

  • 非常感谢。我已经做了几个 tweeks 并让它工作了。只是一个简单的问题,当我单击批准时,它会删除评论中的最后一个字母。你知道如何阻止这种情况发生吗?
  • 对不起,我没有理解你的问题。你能详细说明一下吗?
猜你喜欢
  • 2012-10-20
  • 2014-02-02
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-28
相关资源
最近更新 更多