문제

$ _post의 일부 정보를다시피하는 배열 ($ form)이 있습니다.

$form = $_POST['game'];

이제이 배열의 값으로 작업하고 싶지만 어떻게 든 실패합니다.

디버깅을 위해이 명령을 사용했습니다 (정확히 동일한 순서로, 여분의 선이없는 경우) :

print_r($form);
echo '#' . $form['System_ID'] . "#";

그리고 반환 된 출력으로 나는 다음을 얻는다 :

Array
(
    ['Title'] => Empire: Total War - Special Forces
    ['Genre_ID'] => 1
    ['Type'] => Spiel
    ['System_ID'] => 1
)
##

내 System_id가 어디로 갔는지 아이디어가 있습니까? 그것은 print_r에 있지만, echo의 다음 줄에는 없습니까?!?

도움이 되었습니까?

해결책

좋아, 나는 솔루션을 내 자신을 찾았다 (일명 D 'Oh!)

나는 다른 것을 추가했다

var_dump($form);

추가 분석을 위해 이것이 내가 얻은 것입니다.

array(4) {
  ["'Title'"]=>
  string(34) "Empire: Total War - Special Forces"
  ["'Genre_ID'"]=>
  string(1) "1"
  ["'Type'"]=>
  string(5) "Spiel"
  ["'System_ID'"]=>
  string(1) "1"
}

이중 인용문 안에있는 단일 인용문을 주목하십니까?

HTML 양식으로 단일 견적을 사용할 수없는 경우에 표시됩니다. 또는 배열 키에 포함됩니다.

Wrong: <input type="text" name="game['Title']" />
Correct: <input type="text" name="game[Title]" />

다른 팁

print_r ()는 키 주위에 따옴표를 넣지 않습니다 - 디버깅을 위해서는 print_r을 전혀 권장합니다. var_export 또는 var_dump가 더 좋습니다.

더 나은 : 사용 Firephp. 헤더를 통해 디버그 정보를 보내므로 출력이 엉망이되지 않으므로 Ajax에서도 사용할 수 있습니다. 출력은 데이터 구조에 대한 구문 색칠을 포함하여 Firebug로 잘 표시됩니다.

그리고 사용하기가 더 쉽습니다 fb($myvar);

그것은 나를 위해 작동합니다 :

<?
  $form['System_ID'] = 1;
  print_r($form);
  echo '#' . $form['System_ID'] . '#';
?>

산출:

% php foo.php
Array
(
    [System_ID] => 1
)
#1#

페도라 코어 10에서 PHP 5.2.6

편집 - 실제 원인에 대한 힌트가 있습니다. 내 코드에서 print_r 출력 (올바르게)은 주위에 단일 따옴표가없는 배열 키를 보여줍니다. 원래 포스터의 열쇠 했다 그들 주위에 인용문이 있습니다 print_r 출력, 실제 키에 어떻게 든 인용 표시가 포함되어 있음을 보여줍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top