【问题标题】:Passing Parameters To PHP Table Hyperlink将参数传递给 PHP 表超链接
【发布时间】:2017-10-14 21:51:05
【问题描述】:

我希望我的 php 表的第二列和第三列成为每行的不同页面的超链接。我需要将 3 个参数传递给超链接
1) 第一列的值 - empID 列在下表中
2) 来自 $weekStart 的值 - 从页面顶部的 input type="date" 中选择
3) 来自 $weekEnd 的值 - 从页面顶部的 input type="date" 中选择

我正在尝试这种语法,但它没有传入参数并且我收到一个找不到页面的错误。应如何更改此语法以传递所有 3 个参数并导航到适当的页面?

Week Start:<input type="date" name="weekStart">
Week End:<input type="date" name="weekEnd">
<input type="submit" name="submit" value="View Employee Data">

<?php
if (isset($_POST['submit'])) 
{
    $weekStart = $_POST['weekStart'];
    $weekEnd = $_POST['weekEnd'];

    //Generate Table Here
}
?>
foreach ($tsql as $res) 
{
    print "<tr>";
    print "<td>" . $res->EmpID . "</td>";
    print "<td><a href="DailySales.php?param1=$weekStart;param2=$weekEnd'.$Row['EmpID'].'">'.$Row['DailySales'].'</a>'" . $res->DailySales . "</td>";
    print "<td><a href="WeeklySales.php?param1=$weekStart;param2=$weekEnd'.$Row['EmpID'].'">'.$Row['SalesForWeek'].'</a>'" . $res->SalesForWeek . "</td>";
    print "</tr>";
}

【问题讨论】:

  • 你从哪里得到这 3 个参数值?老实说,这里没有足够的信息来回答这个问题。
  • 第一列的值是表中的 EmpID,值 $weekStart 和 $weekEnd 是从页面顶部的两个输入 type="date" 中捕获的。这有助于澄清我的歧义吗?
  • 是的,它有帮助,您能否也发布那段 HTML,并使用该信息更新您的问题 :)
  • 这是通过单击按钮完成的吗?试图找出这里的操作顺序,因为这些链接在页面加载时会出错。您似乎在输入输入之前填充它们?
  • @RickCalder - 是的,点击按钮时表格正在被填充。当按下按钮时,我将值存储在 php 变量中并运行 sql 查询。我想我现在已经添加了足够的信息来解决我的问题。感谢您与我合作!

标签: javascript php jquery html hyperlink


【解决方案1】:

你没有很好地附加字符串。请尝试以下代码

foreach ($tsql as $res) 
{
   print "<tr>";
   print "<td>" . $res->EmpID . "</td>";
   print "<td><a href='DailySales.php?param1=".$weekStart."&param2=".$weekEnd."&param3=".$Row['EmpID']."'>".$Row['DailySales']."</a>" . $res->DailySales . "</td>";
   print "<td><a href='WeeklySales.php?param1=".$weekStart."&param2=".$weekEnd."&param3=".$Row['EmpID']."'>".$Row['SalesForWeek']."</a>" . $res->SalesForWeek . "</td>";
   print "</tr>";
}

如果仍然显示未找到页面,请检查文件名。

更新:我希望您需要替换循环中的一些变量,如以下代码中更新的那样

foreach ($tsql as $res) 
{
   print "<tr>";
   print "<td>" . $res->EmpID . "</td>";
   print "<td><a href='DailySales.php?param1=".$weekStart."&param2=".$weekEnd."&param3=".$res->EmpID."'>".$res->DailySales."</a></td>";
   print "<td><a href='WeeklySales.php?param1=".$weekStart."&param2=".$weekEnd."&param3=".$res->EmpID."'>".$res->SalesForWeek."</a></td>";
   print "</tr>";
}

【讨论】:

  • 这将根据需要添加超链接和重定向,但由于某种原因,当我添加超链接列时数据会出现偏差。例如,它会在表中随机添加一个空白行并将所有内容推送到随机employeeID 上的右侧1?
  • 对不起@Bell,我不明白你的问题。是否没有验证不插入空记录?
  • 如果您在 SSMS 中运行查询,则没有空白结果。表格设置显示为它应该没有超链接。出于某种特殊原因,当我添加超链接语法时,网格结果有时会添加到幽灵列中,并且某些员工 ID 将有 4 行而不是 3 行
  • 难道我不得不缩短你的语法来打印 "
【解决方案2】:

完全未经测试,我不能 100% 确定这些链接中的数据应该做什么,但我认为这应该给你一个坚实的起点,你可以调整 HTML 生成以获得你想要的。

我根本不会费心尝试在 PHP 中执行此操作,将整个数据集传递给 JS 并在那里执行。

Week Start:<input type="date" name="weekStart" id="weekStart">
Week End:<input type="date" name="weekEnd" id="weekEnd">
<input type="submit" name="submit" value="View Employee Data">

<?php
if (isset($_POST['submit'])) 
{
    $weekStart = $_POST['weekStart'];
    $weekEnd = $_POST['weekEnd'];

    //Generate Table Here
}

// Create a JSON version of your data to pass to the script
$data = json_encode( $tsql );
?>

<!-- Create an empty table for your data-->
<table id="employee-table"></table>

<script> 
$("#submitForm").on("click", function(e) {
  // Stop the form from reloading the page
  e.preventDefault();

  // Set up your variables, you'll need to add ID's to the form inputs
  var employees = <?php echo $data; ?>;
  // See the employees data in your inspector console
  console.log(employees);

  var weekStart = $("#weekStart").val();
  var weekEnd = $("#weekEnd").val();

  // Generate the HTML for all the employees
  var html = "";
  for( var1=0; i<employees.length; i++ ) {
    html += "<tr>";
    html += "<td>" . employees[i].EmpID . "</td>";
    html += "<td><a href='DailySales.php?param1='" + weekStart + "'&param2='" + weekEnd + "'&param3='" + employees[i].id +">"  + employees[i].DailySales + "</a></td>";
    html += "<td><a href='WeeklySales.php?param1='" + weekStart + "'&param2='" + weekEnd + "'&param3='" + employees[i].id +"'>" + employees[i].SalesForWeek + "</a></td>";
    html += "</tr>";
  }

  // Insert the HTML that you generated into the table.
  $("#employee-table").html(html);
});
</script>

【讨论】:

  • 您的 var html 生成的内容是否与上面的 php 相同? (尚未测试,只是想感受一下)
  • 我认为非常接近,我不太清楚原始 HTML 应该生成什么,因为我不熟悉数据。但是如果它不完全正确,如何调整它应该是相对明显的:) console.log() 是你的朋友。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多