使用下面编辑的代码解决了这个问题。感谢所有提供帮助的人!
我的数据库中有两条记录。每条记录有 6 个字段(challengeId、partnerName、code、challengeTitle、description、image_url)。我从父页面视图中选择给定的partnerName 以转到子页面视图。
我正在使用 foreach 循环并遇到问题。我现在已经取出了 foreach 循环并将其替换为<?php $challengename = $this->challengenames[$k] = current($this->challengenames); ?>
但现在无法让子页面显示与我在父页面上选择的“partnerName”相对应的challengeTitle 值。它始终提供第一条记录而不是当前记录的challengeTitle 值。我需要知道如何根据我在父页面上选择的partnerName 来更改challengeTitle 值。
将其设为 do while 循环或子页面控制器中的 if 语句可以解决此问题吗?
非常感谢任何建议(和代码更改)。
父页面控制器
public function viewChallengesAction(){
//get instance for request
$request = JO_Request::getInstance();
//get activated challenge names and set variables
$myChallenge=$this->getChallenge();
$this->view->challengenames = array();
foreach($myChallenge AS $k=>$challengename){
$this->view->challengenames[$k]['href'] = WM_Router::create($request->getBaseUrl() . '?module=challenges&controller=index&action=yourChallenge?code=' . $challengename['partnerName']);
$this->view->challengenames[$k]['partnerName'] = $challengename['partnerName'];
}
子视图
<div id="defaultcontainerwrapper" class="maxwidth">
<?php $challengename = $this->challenge; ?>
<header>
<h1>
<div class="list">
<span>Welcome to </span><?php echo $challengename['partnerName']; ?><span>'s Beat Waste Challenge!</span>
</div>
</h1>
</header>
<?php } ?>
</div>
子控制器
public function yourChallengeAction(){
//get activated challenge names and set variables
$request = JO_Request::getInstance();
$myChallenge=$this->getChallenge();
$code = $request->getQuery("code");
$this->view->challengenames = array();
foreach($myChallenge AS $k=>$challengename){
if ($challengename['partnerName'] == $code)
{
$this->view->challenge = $challengename;
break;
}
}
如果您不知道键并想要数组的当前元素,您可以使用:
$challengename = current($this->challengenames);
或者数组的第一个元素:
$challengename = reset($this->challengenames);
或者数组的最后一个元素:
$challengename = end($this->challengenames);
请注意,end 和reset 会改变数组的指针位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)