2011-10-23 4 views
0

벽돌 벽을 치고 있습니다. 다음 코드는 제가 가지고있는 코드예요 - 앞으로 나아갈 수있는 버튼이있어서 배열을 밟을 수 있습니다. 그러나 몇 가지 이상한 이유 때문에 두 개의 숫자 사이에 끼어 들고 배열의 다음 색인을 표시하는 것을 거부합니다.배열 색인 찾기

//$someArray is an array of ten items. 
    $_SESSION['theResult'] = $someArray; 

    $prev = $_SESSION['theResult'] [0]--; 
    $next = $_SESSION['theResult'] [1]++; 

    echo "<div id='button_div'> 
    <form action='" . $_SERVER['PHP_SELF'] . "'> <input type='hidden' value='" . $prev. "' name=\"id\" /> <input style='float:left;' class='strong_bttn' type='submit' value='<< Previous'></form> 

      <form action='" . $_SERVER['PHP_SELF'] . "'><input type='hidden' value='" . $next. "' name='id' /><input style='float:right;' class='strong_bttn' type='submit' value='Next >>'></form></div>"; 

내가 원하는 내가 다음 누를 때, 이전을 누를 경우 배열하고 다음 인덱스에있는 버튼으로 이동, 그것은 backward.But 이동의 단지 1에 붙어 0으로

이다 나는이 코드가 누구에게나 의미가 있는지를 모른다.

action='" . $_SERVER['PHP_SELF'] . "' 

그것은 모두 당신 만이 값을 얻을 것이다 이유입니다, 현재 페이지에 보내 : 난 그냥 내가 문제가에있다 생각 :(

+0

왜 많은 들여 쓰기 길이가 있습니까? –

+2

이것은 약간 읽기가 어렵습니다 : ( – Ryan

+0

'$ prev'와'$ next'는 인덱스 일뿐입니다. 왜 값에 의해 인덱스 된 배열의 값으로 설정합니까? – Ryan

답변

0

결과 배열을 반복하려고합니까? 그렇다면 어쩌면 도움이 될 수 있습니다 :

<?PHP 
// is an array of ten items. 
$_SESSION['theResult'] = array('a','b','c','d','e','f','g'); 
$max = count($_SESSION['theResult']); 

if(isset($_GET['prevBttn'])) 
{ 
    $prev=($next=$_GET['previous'])-1; 
    if($next==0) 
     $prev=0; 
    echo $_SESSION['theResult'][$next]; 
} 
elseif(isset($_GET['nextBttn'])) 
{ 
    $next=($prev=$_GET['next'])+1; 
    if($next ==$max) 
     $next=$prev; 
    echo $_SESSION['theResult'][$next]; 
} 
else{ 
    (int)$prev=$next=key($_SESSION['theResult']); 
    echo array_shift($_SESSION['theResult']); 
} 
?> 
<div id='button_div'> 
    <form action="<?PHP echo $_SERVER['PHP_SELF'];?>"> 
     <input type='hidden' value="<?PHP echo $prev;?>" name="previous"/> 
     <input type='hidden' value="<?PHP echo $next;?>" name='next' /> 
     <input style='float:left;' name="prevBttn" class='strong_bttn' type='submit' value='<< Previous'> 
     <input style='float:right;' name="nextBttn" class='strong_bttn' type='submit' value='Next >>'> 
    </form> 
</div> 
+0

코드 주셔서 감사합니다. 내가 원하는 것을 정확히 100 % 않습니다 ... 나는 그 코드를 작성하는 데 시간을 보낸다는 것을 믿을 수 없습니다. 너는 신을 보낸다. 축복있어 : –

+0

좋아, 고마워! – Melsi

0

을 포기하려는 단지 좌절과 피곤 해요 . 나는 가정 페이지의 시작에, 그것은 단지 두 번째 페이지에 첫 페이지와 링크가 표시됩니다

0

를 다음 코드와 다음 $를 $ 이전을 결정하고 때 값을 변경할 이유 :.

$prev = $_SESSION['theResult'] [0]--; 
$next = $_SESSION['theResult'] [1]++; 

당신은 수오 LD 단지 $ 이전의 값과 다음 현재 페이지에 사용되는 값, 이런 일에 $ 기초 : 당신 ++을 사용하는 경우

$prev = $currentPageId - 1; 
$next = $currentPageId + 1; 
0

나는이 문제가 있는지 모르겠지만, 또는 - 변수 다음에 할당이 먼저 발생하고 변수가 증가합니다. 할당 한 다음 증가시킵니다. 변수 전에 - 당신이/$ 다음 변수는 $ 이전에 증가 수를 저장하는 ++를 넣어하려는 경우

$prev = $_SESSION['theResult'] [0]; 
$_SESSION['theResult'] [0]--; 
$next = $_SESSION['theResult'] [1]; 
$_SESSION['theResult'] [1]++; 

: 그래서 당신은 기본적으로하고있는 것은 이것이다.