2014-04-07 3 views
0

에서 미리로드 값 :- 나는 다음과 같은 기능을 가지고있는 데이터베이스

function create_table($titles, $id) { 
    $buffer = '<div id="' . $id . '">'; 
    foreach ($titles as $k=>$v) { 
     $buffer .= '<input type="checkbox" name="' . $k . '" id="' . $k . '">'; 
     $buffer .= '<label for="' . $k . '">' . $v . '</label>'; 
    } 
    $buffer .= '</div>'; 
    echo $buffer; 
} 

이 연관 배열에서 값 및 키를 받아 체크 박스의 그룹을 설정합니다. 이것들은 가입 페이지 용이지만 사용자가 프로필을 편집 할 때도 같은 페이지를 사용하고 싶습니다. 따라서 데이터베이스에서 사용자 기본 설정을 checkboxes 'value'속성으로로드하는 방법이 필요합니다. 사용자가 로그인을 시도하면,

$id = "reasons"; 
$titles = $reasons_array; 
$values = $stmt->fetch(PDO::FETCH_ASSOC); 

그러나 다음 매개 변수를 사용하여 함수를 호출 한 후

function create_table($titles, $values, $id) 

과 : 나는에 매개 변수를 변경하여 함수에 값을 전달하는 생각했습니다 PDO 가져 오기가 빈 데이터베이스 행에서 가져 오기를 시도 할 것입니다.

두 가지 기능이 있는데 하나는 등록 용으로 편집하는 것이고 파일은 if(edit==true) 문으로 채워집니다. 그러나 사용자가 편집하려고하는 경우 함수에 값을 가져 오는 다른 방법을 생각할 수 없습니다! 도움!

+0

'$ 테이블을 변경 register' 당신이 원하는'값에 대한'CREATE_TABLE ($ 제목, $ true로 아이디, $ 레지스터 =)와 같은 기능을 특정 (부울) 값을 추가합니다. 당신이 등록과 편집 사이에 약간의 차이가 있다면 그런 인수를 만들어야합니다. 다른 방법은 없습니다 (또는 사용자가 인증되었는지 어떻게 든 확인하십시오). – user1954544

+0

무엇을, 그리고 나서 PDO :: FETCH를'if' 문 안에 create table 함수 안에 넣어야합니다. 그래서 값은 참인 경우에만 들어갑니다. 함수 내에서 fetch 문을 가지고 있어도 괜찮습니까? – Giovanni

+0

아니요,보기 기능 호출 전에 모든 데이터를 준비해야합니다. 또한 배열의 데이터로 확인하여 일부 메뉴를 표시 할 수도 있고 표시하지 않을 수도 있습니다. 따라서 먼저 데이터를 준비하고 html을 표시하거나 생성하는 방법에 관해서 준비하십시오. – user1954544

답변

0

간단한 예를

function viewTable($aData, $bEdit = false) 
{ 
    echo $aData['some']; 
    // ... 
    if ($bEdit) { // or you can use isAuth() function without arg-var 
     echo $aData['auth']; // hidden data only for edit page 
    } 
} 

function getData() 
{ 
    $aReturn['some'] = 123; // all vars you need; 
    // ... 
    if (isAuth()) { 
     $aReturn['auth'] = 321; // only for authenticated (for edit) 
    } 

    return $aReturn; 
} 

function isAuth() 
{ 
    return true; // check authentication 
} 

viewTable(getData(), isAuth()); 
+0

좋아,이게 맘에 들어! 기능 내에서 기능을 생각하지 못했습니다! (여전히 PHP에 상당히 새로운). 하나의 질문 - viewTable 함수의 정의에서 당신은'$ bEdit = false'라고 말했습니다. 나는 이것이 디폴트 값이라고 가정하고,'isAuth()'가'true'를 반환한다면이 디폴트는 덮어 쓰여질 것인가? – Giovanni

+0

예'$ bEdit = false' 기본값, 예 - 덮어 쓰기됩니다. php에 대한 책을 읽으십시오, 그곳에 모두 설명되어 있습니다 ...;) – user1954544

+0

당신의 도움에 감사드립니다 - 나는 다른 함수에서 매개 변수로 함수를 호출 할 수 있다는 것을 알지 못했습니다. 지금 이것으로 재미있게 될 것입니다! :) – Giovanni

관련 문제