我试图将变量$candid
和$clientid
从active.php传递到editor.php。这是我目前为active。php编写的代码:
$active_tsquery = db_select("SELECT * FROM timesheets WHERE status='"cand'" OR status='"client'" ORDER BY weekending ASC");
echo "<table width='"90%'">
<tr>
<td width='"20%'">Client Company</td>
<td width='"20%'">Candidate</td>
<td width='"20%'">Week Ending</td>
<td width='"20%'">Action</td>
</tr>";
foreach($active_tsquery as $key => $value) {
$clientid = $value["clientid"];
$_SESSION['clientid'] = $clientid;
$weekend = $value["weekending"];
$clientresult = db_select("SELECT * FROM timesheetlogin WHERE id='"$clientid'"");
$candid = $value["candid"];
$_SESSION['candid'] = $candid;
$candresult = db_select("SELECT * FROM timesheetlogin WHERE id='"$candid'"");
$ts_id = $value["ts_id"];
$_SESSION['tsid'] = $ts_id;
foreach ($clientresult as $key => $value) {
$company = $value["company"];
}
foreach ($candresult as $key => $value) {
$candidate = $value["name"];
}
echo "<tr><td class='"main-text'">$company</td><td class='"main-text'">
$candidate</td><td class='"main-text'">$weekend</td><td class='"main-text'">
<a href='"editor.php?id=$ts_id'" class='"main-link'">Edit</a></td><td class='"main-link'">
<a href='"deleteconfirm.php?id=$ts_id'" class='"main-link'">Delete</a></td></tr>";
}
Active.php正在工作,因为<a href='"editor.php?id=$ts_id'" class='"main-link'">Edit</a>
正在给出正确的url。
$candid = $_SESSION['candid'];
$clientid = $_SESSION['clientid'];
$candresult = db_select("SELECT * FROM timesheetlogin WHERE id='"$candid'"");
$clientresult = db_select("SELECT * FROM timesheetlogin WHERE id='"$clientid'"");
$tsresult = db_select("SELECT * FROM timesheets WHERE candid='"$candid'"");
var_dump($tsresult);
var_dump($tsresult);
是一个1的数组,每次返回最后一个时间表。我假设是因为$candid
是错误的。foreach循环在active.php已经完成,$candid
正在从数组的最后一项返回?
我使用session_start();
在每个文件的顶部BTW。
在foreach循环的每次迭代中,覆盖 $_SESSION['candid']的当前值。这就是为什么只有最后一个candid
出现在editor.php中。
PHP在会话变量中支持数组,所以如果在foreach循环之前初始化数组:
$_SESSION['candid'] = array();
(或者,新的样式,从PHP 5.4起工作)
$_SESSION['candid'] = [];
并将candid
添加到循环中的数组中:
$_SESSION['candid'][] = $candid;
可以在editor.php中遍历数组
您可以通过像这样将[]添加到$_SESSION['clientid']
来实现您想要的:$_SESSION['clientid'][]
本质上意味着"将此追加到数组"。