2012-02-22 2 views
0

PHP 프로젝트에서 페이지로드시 데이터베이스에서 데이터를 검색하고 사용자가 데이터를 변경하도록 허용하는 페이지를 만듭니다 & 업데이트. 데이터를 표시하려면 input textoption 컨트롤을 사용해야합니다. 양식 데이터를 수정하는 경우 소수의 POST 요청이 포함될 수 있습니다. 데이터베이스에서 데이터를로드하고 POST 사이에 데이터를 보유하려면이 방법을 사용합니다. 데이터베이스에서데이터베이스에서 데이터로드 및 다시 게시 간 데이터 유지

데이터로드

$oClass = new DataClass(); 
$oClass ->GetRecordById($_REQUEST['id']); 
$dataName = $oClass ->Name; 
$dataYear = $oClass ->Year; 

INPUT 텍스트

<input type="text" name="txtName" value="<?php echo isset($_POST['txtName']) ? $_POST['txtName'] : $dataName ?>" > 

옵션

$arrYears = GetYears(); 
foreach ($arrYears as $year) { 

    if (isset($_POST['ddlYear'])) { 
     if ($_POST['ddlYear'] == $year) { 
      echo '<option value="' . $year . '" selected="selected">' . $year . '</option>'; 
     } else { 
      echo '<option value="' . $year . '">' . $year . '</option>'; 
     } 
    } else { 
     if ($dataYear == $year) { 
      echo '<option value="' . $year . '" selected="selected">' . $year . '</option>'; 
     } else { 
      echo '<option value="' . $year . '">' . $year . '</option>'; 
     } 
    } 
} 

는 일이다 게시물을 사용하는 것보다 게시물간에 데이터를 유지하는 더 좋은 방법은

if (isset($_POST['NAME'])) 
{$_POST['NAME']} 
else 
{$name} 

답변

0

정보를 유지해야하는 이유가 있습니까? 사용자가 양식을 제출하면 정보를 업데이트하므로 다음 사람이 들어오고 업데이트하거나 읽을 수 있도록 다시 가져와야합니다.

위의 경우 $ year = $ oClass -> Year를 지정하더라도 마찬가지입니다. 하지만 아무데도 언급되지 않았습니다. foreach 루프의 $ year는 해당 foreach 루프에 대한 로컬 범위 변수이며 루프 실행이 끝나면 사라집니다.

이렇게 할 수 있습니다. foreach는 루프의 옵션 사이의 유일한 차이가 선택한 속성이 적용되는지 여부 때문에

if (isset($_POST['txtName'])) 
{ 
    $name = $_POST['txtName']; 
} 
else 
{ 
    $name = ''; 
} 

<input type="text" name="txtName" value="<?php echo $name; ?>" /> 

다음과 둘을 단축 할 수 있습니다.

if (isset($_POST['ddlYear'])) { 
    echo '<option value="' . $year . ($_POST['ddlYear'] == $year) ? '" selected="selected"' : '' . '>' . $year . '</option>'; 
} 
else { 
    echo '<option value="' . $year . ($movieyear == $year) ? '" selected="selected"' : '' . '>' . $year . '</option>'; 
} 

또한 빠른 답변도 정의되지 $ _POST 어디서나 정의되지 않은 변수와 $ movieyear 같은 다른 사람을했다 예를 들어 위의 예를 들어, 간단한 작업 사용 사례를 제공하시기 바랍니다 얻을 수 있습니다.

+0

'$ year'에 오타가 있었지만 수정했습니다. 답변 해주셔서 감사합니다... – Nalaka526

관련 문제