【问题标题】:passing data to a new html window将数据传递到新的 html 窗口
【发布时间】:2015-08-05 12:32:06
【问题描述】:

对不起,伙计们,这有点宽泛,我已经搜索过,但有一些东西出现了,但我想直接回答我的问题。

首先,我是德克萨斯州达拉斯一家卡车经销商的机械师。我正在编写一个基于 Web 的应用程序,这将使我更容易组织我的所有工作。我正在使用这个项目来自学 HTML、PHP、PDO、javascript 等。现在我正处于设计和组织阶段,这意味着我得到了我想要弄清楚的一切,所以当我开始硬编码时,我提前知道要去哪里。

现在,当技术人员登录时,他们将被带到技术登录页面。我将有一个 php 脚本,它将检索分配给该特定技术的所有 20 个最近的“活动”Ro(维修订单)。表格将在每行末尾的一行上显示摘要信息,并且会有一个按钮(或者我可能不确定 RO # 是否可点击。

我的问题是打开一个新窗口并传递所单击选项的 RO# 以便新页面上的脚本可以开始从数据库中填充详细的 RO 信息的最佳方法是什么??

我不一定要寻找代码,但我可以搜索一些东西来缩小我的选择范围。

谢谢

【问题讨论】:

  • 尝试使用target=_blank<a>元素并在url中传递一个加密的id并在此基础上获取数据
  • “首先我是德克萨斯州达拉斯一家卡车经销商的机械师。我正在编写一个基于 Web 的应用程序,这将使我更容易组织我的所有工作。” - 完全爱你! :)
  • @TheWarlock 是在讽刺吗??
  • 不!老实说,我很高兴读到它。没有讽刺! :)

标签: javascript php html mysql pdo


【解决方案1】:

有几种方法可以做到这一点。

A simple link with querystring:
-------------------------------
<a href='/repairs.php?mechanic=bob' target='_blank'>Bob's Repair Orders</a>
<a href='/repairs.php?mechanic=curly' target='_blank'>Curly's Repair Orders</a>

A simple link with a javascript function:
-----------------------------------------
<a href='#' onclick='getRepairs('bob')'>Bob's Repair Orders</a>
<a href='#' onclick='getRepairs('curly')'>Bob's Repair Orders</a>

javascript:
function getRepairs(name){
    window.open('/repairs.php?mechanic='+name );
}

【讨论】:

    【解决方案2】:

    您有两种选择:

    1. (推荐)在地址page.php?id=1001中传递RO#(id)并使用get方法获取id 在新页面上。这将是一个包含所有栏和所有内容的整页 已启用。
    2. 在 DIV 中收集数据并打开一个新页面并向其中填充数据。

    选项 1 的代码:

    第 1 页:ROlist.php (其中包含 20 个 RO 的列表)

    <a href="ROdetails.php?id=1001" target="_blank"> RO#1001</a>
    

    第 2 页:ROdetails.php (仅打开基于 id 的详细信息)

    <?php
    $ROid=$_GET['id'];
    $result=mysql_query("SELECT * FROM table where id='$ROid'");
    if($result)
    {
    while($list=mysql_fetch_array($result))
    {
    echo $list['Id'];
    echo $list['clientName'];
    echo $list['foo'];
    echo $list['bar'];
    }}
    ?>
    

    【讨论】:

      【解决方案3】:

      您可以在 JavaScript 中调用以下代码:

      window.open("<yourUrl to open>?ro=someValue")
      

      并将 ro 值作为查询参数传递给新窗口 (?ro=someValue 其中 someValue 将替换为要传递的值和 是要在新窗口中加载的页面的 url)。

      在新窗口中,您可以使用以下命令检索它:

      function getParameterByName(name) {
         name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
         var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
            results = regex.exec(location.search);
         return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
      }
      var ro = getParameterByName('ro')
      

      注意:getParameterByName 来自How can I get query string values in JavaScript?

      【讨论】:

        【解决方案4】:

        使用 GET 参数:index.php?ro_id=1

        现在这个 URL 应该是通过 PHP 生成的,其中 1 是一个变量并且是 RO#。

        其他解决方案告诉如何在新窗口中打开它,但你不需要 JS 来读取 $_GET。

        【讨论】:

          【解决方案5】:

          就像 Uchiha 评论所建议的那样,您可以将您的 RO# 放入链接中。

          在你的 html 中你可以这样写:

          <a target="_blank" href="ro_table.php?ro_number=RO number here"> RO# </a>
          

          在您的 ro_table.php 或任何您希望接收 RO# 的 php 文件中,您可以通过以下方式获取 RO#:$_GET["ro_number"] 并将其用于您的数据库查询。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-05-12
            • 2019-01-31
            • 1970-01-01
            • 2015-11-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多