2014-11-27 4 views
0

버그를 찾을 수 없습니다. 배열로 채워진 폼을 생성하는 PHP 스크립트를 작성했습니다. 마지막 행은 새 항목을 배열에 추가하는 입력 필드입니다.PHP 배열로 테이블 채우기

내 문제는 새 배열을 추가 할 때 배열의 마지막 항목을 덮어 쓰는 것입니다. 코드는 다음과 같습니다.

<?php 
$array = array("a"); 
function printForm($array) 
{ 
    if(!isset($array)){ 
     $array = array(); 
    } 

    $out=" <form name='' action='".$_SERVER['PHP_SELF']."' method='POST'><table border='1'> <tr><th colspan='2'>Namen</th></tr>"; 
    $out = $out. "<input type='hidden' name='posted' value='yes' />"; 
    foreach ($array as $m) { 
     $out = $out . "<tr><td> </td>"; 
     $out = $out . "<td>".$m["name"]."</td></tr>"; 
    } 
    $out = $out. "<tr><td> <input type='Submit' value='add' /></td>"; 
    $out = $out. "<td><input type='text' name='name' value='' /></td>"; 
    $out = $out."</table></form>"; 
    echo $out; 
} 

if($_POST['name']!=""){ 
    array_push($array, $_POST['name']); 
} 
printForm($array); 

?> 

아이디어가 있습니까?

감사합니다. Michaba

+0

불분명 함. '덮어 쓴다 '는게 무슨 뜻입니까? 새로운 값을 제출할 때마다 배열에 추가 될 것이라고 생각하십니까? –

+1

PHP에서 브라우저 요청간에 변수가 기억되지 않습니다. 배열을 영구적 인 위치에 저장하지 않고 브라우저 전체로 다시 보내지 않으므로 단순히 삭제됩니다. 이 작업을하려면 세션에 저장하거나 모든 값을 다시 양식에 게시해야합니다. – Erik

+0

아, 그 어리석은 질문에 대해 죄송합니다. 하지만 어떻게이 배열을 Session에 저장할 수 있습니까? 목록이 완성되면 데이터베이스에 저장합니다. – MichaBa

답변

0

감사합니다.

<?php 
session_start(); 

if (! isset ($_SESSION['myArray'])) 
{ 
    $_SESSION['myArray'] = array(); 
} 
function printForm() 
{  
    $out=" <form name='' action='".$_SERVER['PHP_SELF']."' method='POST'><table border='1'><tr><th colspan='2'>Namen</th></tr>"; 
    $out .= "<input type='hidden' name='posted' value='yes' />"; 
    foreach ($_SESSION['myArray'] as $m) { 
     $out .= "<tr><td> </td>"; 
     $out .= "<td>".$m["name"]."</td></tr>"; 
    } 
    $out .= "<tr><td> <input type='Submit' value='s' /></td>"; 
    $out .= "<td><input type='text' name='name' value='' /></td>"; 

    $out .= "</table></form>"; 
    echo $out; 
} 

if($_POST['name']!="") 
{ 
    array_push($_SESSION['myArray'], $_POST['name']);  
} 
printForm(); 
?> 

i는 데이터베이스의 배열을 저장합니다 lateron : 여기에 나를 위해 작동 솔루션입니다.

+0

'$ out'에 추가하려고하면'$ out = $ out 대신'$ out. ='을 사용하십시오. ' [문자열 연결] (http://php.net/manual/en/language.operators.string.php)에 대한 자세한 내용을 보려면 여기를 클릭하십시오. – Mikey