1

誰かがここで私を助けてくれることを願っています。私はウェブサイトを作成している最中で、HTML と PHP についてはまったくの初心者です。JavaScript は私にとってまったく新しいものです。

管理者が作成中の Web サイトでフォームを動的に作成できるようにする必要があります。管理者は、フォームに表示するフィールドに名前を付けることができる新しいページに移動するボタンをクリックして、このフォームを保存し、入力してデータベースに保存できるようにしたいと考えています。彼らはサイトにログインしたときにこれを実行できるようにしたいので、基本的には管理者権限を持っているがコードでは実行しないように、Web サイトで実行する必要があります。

これは可能ですか?データベースにフィールドを動的に作成し、データベースのそれらのフィールドにも情報を挿入する場合、それがどのように機能するかは実際にはわかりません。情報を保存するためにクエリを作成する方法もわかりません。

誰かが私を助けることができれば、私は非常に感謝しています.私は本当にこの機能を試して実装する場所がありません.

4

2 に答える 2

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;

出力は、myFieldanotherField1つずつ実行されるので、INSERTキーワードを使用してdbに保存できます。PDOを使用して保存する方法は次のとおりです。PDO に関する詳細情報は次のとおりです。

于 2012-06-13T11:27:10.787 に答える
1

PHP側からWebサイト全体を動的に作成する制限はありません最良の例は、コードの下のCMSです。PHP側からそのロジックがどのように作成されるかを彼を助けようとしています

admin_rights.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
于 2012-06-13T11:31:10.830 に答える