2012-06-13 4 views
1

누군가가 나를 도와 줄 수 있습니다. 나는 웹 사이트를 만드는 중이고 HTML과 PHP를 처음 접했습니다. JavaScript는 완전히 새로운 것입니다.HTML/PHP를 통해 양식을 동적으로 생성

저는 관리자가 내가 만들고있는 웹 사이트에서 양식을 동적으로 만들도록해야합니다. 관리자는 버튼을 클릭하여 양식에 표시 할 필드의 이름을 지정할 수있는 새 페이지로 이동 한 후이 양식을 저장하여 데이터베이스에 저장할 수 있기를 원합니다. 그들은 사이트에 로그인 할 때이 작업을 수행 할 수 있기를 원하므로 기본적으로 관리자 권한을 가지고 있지만 코드를 통해 수행하지 않는 것처럼 웹 사이트에서 수행해야합니다.

궁금한 점이 있습니까? 데이터베이스의 필드를 동적으로 생성 한 다음 정보를 데이터베이스의 해당 필드에도 삽입 할 때 어떻게 작동하는지 실제로 알지 못합니다. 나는 정보를 저장하는 쿼리를 어떻게 만들 수 있을지 전혀 모른다.

누구든지 도와 주시면 감사하겠습니다.이 기능을 사용해보십시오.

+0

왜 일부 CMS (Wordpress?)를 사용하지 않을 이유가 있습니까? 드루팔 (Drupal? joomla?) 웹 사이트에 대한? 당신의 삶이 훨씬 더 쉬울 것 같은 소리. 특히 적절한 기술이 필요 없다고 선언하면 더욱 그렇습니다. 그것이 바로 그 시스템이 원하는 것입니다. –

+0

@Obmerk Kronen 나는 학생 배치를하고있는 회사의 내부 도구로 그 중 하나를 사용할 수 없습니다. – funky

+0

우물 - 1) 나는 무엇이든을위한 내부 시스템으로 wordpress를 사용하는 문제를 보지 못한다. (심지어 한 번은 호텔을위한 PMS 통합 시스템으로 만들었다.) 그리고 2) - 나는 당신이 물었던 것이 상당히 복잡해 보였기 때문에 그것을 제안했다. 적절한 기술없이해야합니다. 배울 수있는 방법이 너무 많습니다. 의심 스럽지만 의심의 여지가 있습니다. 여기 누군가가 당신의 DB 구조를 알지 못하는 채로 당신을 위해 즉시 사용할 수있는 기성품 솔루션을 제공 할 수 있습니다. –

답변

1

예, 물론 가능합니다.

데이터베이스에 HTML을 저장하는 것은 좋지 않습니다. 동적 데이터 (예 : 입력 유형, 클래스 등)를 저장 한 다음 요청시 간단한 PHP 스크립트를 사용하여 페이지에 출력 할 수 있습니다. 예를 들어 :

echo '<input type="'.$type.'">'; //$type is data read from db. 

는 지금까지 내가 귀하의 의견을 형성 알고, 당신은 당신이 배열로 그것을 얻을해야합니다, 그래서 DB에 사용자 당 쓸 필요가 얼마나 많은 노트 모른다. 이를 위해 입력 이름을 name[]과 같이 지정할 수 있습니다. 예를 들어, 당신은 양식 안에이 HTML을 가질 수

<input name="fieldName[]" value="myField"> 
<input name="fieldName[]" value="anotherField"> 

당신은 당신이 배열거야 $_POST를 사용하여 얻을 때 : 당신이 경우에 그래서 당신을

[fieldName] => array(2) 
       { 
        [0] => "myField", 
        [1] => "anotherField" 
       } 

을 :

foreach ($_POST['fieldName'] as $field) 
    echo $field; 

출력은 myFieldanotherField이 될 것이므로 하나씩 실행되므로 INSERT 키워드를 사용하여 db에 저장할 수 있습니다. Here's how to save using PDO와 PHP의 끝에서

+0

정직한 @PLB가 데이터베이스에 저장 될 때 특히 그렇다는 것을 나는 이해하지 못한다. 관리자가 원하는 것은 'Add Field'와 같은 버튼입니다. -이 버튼을 클릭하면 새로운 텍스트 필드가 나타나고 Name과 같은 텍스트 필드의 이름을 지정한 다음 'Save Form'과 같은 것을 클릭하면 관리자가 양식을 저장합니다 만들어진. 어쩌면 그냥 경험 부족하지만 데이터베이스의 필드를 저장할 때 모든 것이 어떻게 작동하는지 이해할 수 없습니다. – funky

+0

"Save Form"을 제출하면 전체 데이터가 배열로 유지되어 PHP 스크립트가 해당 배열을 반복하고 다른 항목으로 하나의 항목을 저장합니다 (INSERT INTO table_name VALUES (value1, value2, ...) ')를 실행 한 다음 실행하십시오. 그러나 이것은 구식 쿼리입니다. 당신은 지금 pdo를 사용할 수 있고 나는 당신에게 튜토리얼을 주었다. – Leri

+0

감사합니다. 이제 PDO를 살펴 보겠습니다. – funky

1

here's more info about PDO이 제한 좋은 예가없는 동적으로 전체 웹 사이트를 만들 난 그냥 그 논리는 PHP의 끝에서

admin_rights를 만드는 방법에 그를 도와하려고 코드 아래 CMS입니다. PHP

<!--<script src="http://code.jquery.com/jquery-1.7.2.js"></script>--> 
<script> 
function dynamic_field(type,div_no){ 
    if(type == 'text'){ 
     document.getElementById('dynamic_field_'+div_no).innerHTML='TextField Name : <input type = "text" name="txt_field"> -> your text field has been generated just define name';  
    }else if (type == 'textarea'){ 
     document.getElementById('dynamic_field_'+div_no).innerHTML='TextArea Name : <input type = "text" name="text_area"> -> your text area has been generated just define name'; 
    }else if (type == 'table_name'){ 
     document.getElementById('dynamic_field_'+div_no).innerHTML='Table Name : <input type = "text" name="table_name"> -> your table has been generated just define name';  
    } 
} 

</script> 
Admin Rights <br /> 
<form action="action.php" method="post"> 
<input type="button" value="TextField" onclick="dynamic_field('text',1)" /> 
<input type="button" value="TextArea" onclick="dynamic_field('textarea',2)" /> 
<input type="button" value="Table Name" onclick="dynamic_field('table_name',3)" /> 

<br /> 

<?php 
for($i = 1; $i<=10; $i++){ 
?> 
    <div id="dynamic_field_<?php echo $i;?>"></div> 
<?php 
} 
?> 
<input type="submit" value="submit" /> 
</form> 

행동 .PHP

,
<pre> 
<?php 

$con = mysql_connect("localhost","root",""); 
if (!$con){ 
die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("dynamic_form", $con); 

mysql_query(" 
CREATE TABLE 
`dynamic_form`.`".$_REQUEST['table_name']."` 
(`id` INT(11) NOT NULL AUTO_INCREMENT , `".$_REQUEST['txt_field']."` VARCHAR(225) , `".$_REQUEST['text_area']."` TEXT , PRIMARY KEY (`id`)) ;") 
?> 

Congrulation you have successfully generated <?php echo $_REQUEST['table_name'];?> table 
+1

매번 새로운 테이블을 만들 계획입니까? 이렇게하면 생성 된 데이터를 읽을 때 작업이 매우 복잡해집니다. 모든 것을 하나의 테이블에 보관하는 것이 좋습니다. – Leri

+2

나는 그 논리가 어떻게 php 끝에서 만들어 지는지 그에게 설명한다. @PLB –

+0

나는 이것을 빠르게 설정했고, 내가 어쨌든 그것을 찾고있다. @PLB 자습서로 저를 보내신 것을 사용 하시겠습니까? – funky

관련 문제