2010-12-27 5 views
0

기본적으로 데이터베이스에 데이터를 저장하는 PHP 폼을 만들려고합니다. 입력 한 내용을 기반으로합니다. 물론 이것은 기본입니다. 링크 주어진 -ID 기반 PHP 폼을 만드는 방법은 무엇입니까?

이 PHP를 양식 ID를 기반으로해야합니다 :

그러나 한 특질이있다.

mywebsite.com/form.php=id446과 같은 것이 mywebsite.com/form.php=id447과 매우 다른 형태를 생성한다고 가정 해 봅시다.

형태 모두에서 차이가 나는이 강제 단지 등 form446.php, form447.php을 만들 짐승 수, 나머지는 지금 같은

이며, 약 3 ~ 4 양식 필드입니다 (그들은 표시할지 여부) - 그러나 나는 오히려하지 않을 것입니다.

내가 할 수있는 기능이 있습니까?

또한 미학적 인 눈을 즐겁게하는 PHP 서식을 만들기위한 템플릿이 있습니까?

감사들, 여자가

답변

0

당신은 하나의 form.php를 사용하지만 구조하는 경우 포함 코드에서 사용할 수있는/개별 부품을 제외 - 그래서 뭔가 같은 :

<form action="doForm" method="post"> 
    Input 1: <input type="text" id="input1"/> 
    Input 2: <input type="text" id="input1"/> 

    <?php 
     //This field only appears if you hit the url form.php?formid=123 
     if($_GET['formid'] == 123): 
     echo 'Input 3: <input type="text" id="input3"/>'; 
     endif; 
    ?> 
    <input type="submit" id="submit" value="submit" /> 
</form> 

서버 측 스크립트 언어 PHP가되는 쓸모 있고 사용하기 쉬운 형식을 만드는 데 필요한 것이 아닙니다. 기능적 처리에만 관심이 있습니다. 예쁜 양식의 경우, 대신 멋진 HTML/CSS와 자바 스크립트를 원할 것입니다. "사용 가능한 양식"에 대한 Google의 의견을 구하십시오. http://www.queness.com/post/204/25-jquery-plugins-that-enhance-and-beautify-html-form-elements

--- 편집 ---- 고유 한 요소로 약 10000 개의 다른 양식이 필요하다고 가정해야합니까? ? 나는 희망이 없다. 이 모든 것을 줄이면 formType을 url 매개 변수로 추가하는 대신 id 대신 ID를 그룹화하여 구문 분석 할 수 있습니다.

솔직히 말해서 나는 데이터베이스를 어쨌든 사용할 것입니다. 각 폼의 ID 번호와 관련된 메타 데이터 (배열 또는 심지어는 직렬화 된 배열). 그런 다음 응용 프로그램에서 추출한 다음 formId를 유일한 URL 매개 변수로 사용할 수 있습니다. 다른 의견에서 나는 저장된 데이터를 보유하고있는 테이블이 formId에만 국한된 것은 아니라고 생각합니다. 아마도 이것이 잘 작동 할 것입니다.

+0

나는 10000 ID 번호 같은 것을 가지고 있으므로 페이지의 같은 스크립트에서이 모든 것을 처리하는 것이 비효율적 일 것입니다 - 다른 솔루션? – econclicks

+0

Eek, 그게 많이 있습니다. 내가 코멘트 박스의 공간을 다 썼기 때문에 나는 나의 대답을 업데이트했다. – hollsk

1

귀하의 질문은 나를 위해 조금 모호합니다. 예를 들어 446과 447의 차이점은 무엇입니까? 그것은 완전히 무작위이어야합니까? 아니면 일련의 필드/양식을 직접 사용할 수 있습니까?

+0

그들은 다른 필드를 가지고 있지만 다른면에서는 다소 유사합니다. 446과 같이 textb_a는 데이터베이스의 특정 필드 만 채우는 반면, 447은 textbok_a에 대한 옵션이 없지만 textbox_b가됩니다. – econclicks

0

코드가 제대로 실행되지 않을 수 있습니다. 확인하지는 않았지만 몇 가지 아이디어가 있습니다.

$formTypes = array(); 
$formTypes["type1"] = array("var1" => "string", "var2" => "textarea"); 
$formTypes["type2"] = array("var1" => "string"); 
$forms = array(); 
$forms["446"] = "type1"; 
$forms["447"] = "type2"; 

foreach ($formTypes[$id] as $varname => $vartype) { 
    switch ($vartype){ 
     case "string": 
     print "<input name='" . $varname . "'>"; 
     break; 
     case "textarea": 
     print "<textarea name='" . $varname . "'></textarea>"; 
     break; 
    } 
} 
0

안녕하세요

당신이 propely을 통해 일을 생각해야이 작업을합니다. 데이터베이스 부분부터 시작해야합니다.

결론적으로 PHP에서는 각 ID를 하드 코딩 할 수 없습니다.

데이터베이스를 사용해야합니다. 토론에 대한

일부 가정 : 먼저 한 ID 당 행과 해당 ID에 대한 어쩌면 몇 가지 추가 정보가있는 테이블을 작성해야 question3

question1, question2 이름이 다를 폼.

그렇다면 내가보기에 그것을하는 가장 쉬운 방법은 꽤 못 생기고 나쁜 데이터베이스 디자인입니다. 질문 당이 ID 테이블에 하나 개의 필드를 추가, 그래서 테이블과 같이 보일 것이다 :

id|question1|question2|question3 
446|1|1|0 
447|0|1|1 

다음을, PHP는 당신이 단지 만들 "id_table SELECT * FROM 경우 ID ="|| ID || ";"

나는 인터넷을 검색하지 않고 PHP의 문법을 모른다, 그러나 ID가 그 질문을해야하는 경우가 그럼 그냥 의사 코드에서 다양한 질문 각각에 대해 확인 :

if(question1) 
    { 
     the question 1 
    } 

    if(question2) 
    { 
     the question 2 
    } 

HTH 니클라스

관련 문제