Foreach-Schleife (oder währenddessen?) - Möchten Sie nur einen Datensatz zurückgeben, je nach Seite
Ich habe zwei Datensätze in meiner Datenbank. Jeder Datensatz enthält 6 Felder (challengeId, partnerName, code, challengeTitle, description, image_url). Ich wähle einen bestimmten Partnernamen aus der übergeordneten Seitenansicht aus, um zur untergeordneten Seitenansicht zu wechseln.
Ich habe eine foreach-Schleife verwendet und Probleme gehabt. Ich habe jetzt meine foreach-Schleife herausgenommen und durch @ erset<?php $challengename = $this->challengenames[$k] = current($this->challengenames); ?>
, aber jetzt kann die untergeordnete Seite nicht die Werte für challengeTitle anzeigen, die 'partnerName' entsprechen, die ich auf meiner übergeordneten Seite ausgewählt habe. Es wird immer der challengeTitle-Wert des ersten Datensatzes anstelle des aktuellen Datensatzes bereitgestellt. Ich muss wissen, wie ich den challengeTitle-Wert ändern kann, je nachdem, welchen Partnernamen ich auf meiner übergeordneten Seite ausgewählt habe.
Wird dies durch eine do while-Schleife oder eine if-Anweisung im untergeordneten Seitencontroller behoben?
Jeder Rat (und jede Änderung des Codes) wird sehr geschätzt.
parent page controllerpublic 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'];
}
KINDERANSICHT<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>
KIND CONTROLLERpublic 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;
}
}