动态添加字段以形成并访问php脚本中的值
dynamically add fields to form and access the values from php script
我正在动态地向表单中添加文本字段,但现在我需要能够将这些值存储到mysql数据库中。如果没有动态创建的字段,我可以做到这一点。这是代码-
<!DOCTYPE HTML>
<html>
<head>
<title> Company Value form </title>
<script language = "javascript">
function addTextField(){
var element = document.createElement("input");
element.setAttribute("name", "i");
element.setAttribute("value", "sample value");
element.setAttribute("size", 30);
var twitter = document.getElementById("twitterusernames");
twitter.appendChild(element);
}
</script>
</head>
<body>
<h1> Enter the values </h1>
<form method = "post" name = "config_form" action = "message.php">
<table border = "1px" >
<tr> <td>
<b> Twitter </b> <br/> <br/>
FeatureId: <input type = "text" name = "FeatureId"> <br/>
Image: <input type = "text" name = "Image"> <br/>
LabelEn: <input type = "text" name = "LabelEn"> <br/>
LabelFr: <input type = "text" name = "LabelFr"> <br/>
URL: <input type = "text" name = "URL"> <br/>
TwitterUserNames: <input type = "text" name = "TwitterUserName" size = "50">
<input type = "button" value = "Add" onclick = "addTextField()"/>
<span id="twitterusernames"> </span>
<br/>
Minimum Count: <input type = "text" name = "MinimumCount"> <br/>
Refresh Count: <input type = "text" name = "RefreshCount"> <br/>
EmptyMessage English: <input type = "text" name = "EmptyMessageEnglish"> <br/>
EmptyMessage French: <input type = "text" name = "EmptyMessageFrench"> <br/>
Widget: <input type = "text" name = "Widget"> <br/>
Email Share Text: <input type = "text" name = "EmailShareText"> <br/>
</td> </tr>
</table>
<input type="submit" value="Submit">
</form>
</body>
</html>
和PHP代码:
<?php
include 'database.php';
$Twitter = array(
'FeatureId' => $_POST["FeatureId"],
'Image' => $_POST["Image"],
'LabelEn' => $_POST["LabelEn"],
'LabelFr' => $_POST["LabelFr"],
'URL' => $_POST["URL"],
'TwitterUserName' => $_POST["TwitterUserName"],
'MinimumCount' => $_POST["MinimumCount"],
'RefreshCount' => $_POST["RefreshCount"],
'EmptyMessageEnglish' => $_POST["EmptyMessageEnglish"],
'Widget' => $_POST["Widget"],
'EmailShareText' => $_POST["EmailShareText"]
);
$crud = new database();
$insert = $crud -> insert($Twitter);
if ($insert) {
echo "Success";
}
else {
echo "Values were not inserted into the database";
}
?>
添加此element.setAttribute("name", "i[]");
然后在php处理程序中
$Twitter = array(
'FeatureId' => $_POST["FeatureId"],
'Image' => $_POST["Image"],
'LabelEn' => $_POST["LabelEn"],
'LabelFr' => $_POST["LabelFr"],
'URL' => $_POST["URL"],
'TwitterUserName' => $_POST["TwitterUserName"],
'MinimumCount' => $_POST["MinimumCount"],
'RefreshCount' => $_POST["RefreshCount"],
'EmptyMessageEnglish' => $_POST["EmptyMessageEnglish"],
'Widget' => $_POST["Widget"],
'EmailShareText' => $_POST["EmailShareText"],
'extraFields' => serialize( $_POST["i"] ) // Extra fields
);
$crud = new database();
$insert = $crud -> insert($Twitter);
if ($insert) {
echo "Success";
}
else {
echo "Values were not inserted into the database";
}
?>
以显示数据。让我们假设您已经拥有$extraFields
<?php
$extraFields = unserialize( $extraFields );
foreach($extraFields as $extra ):
?>
<input type="text" name="i[]" value="<?php echo $extra; ?> ">
<?php
endforeach;
?>
给出以[]
:结尾的动态元素名称
element.setAttribute("name", "i[]");
然后PHP将用所有值的数组填充$_POST['i']
。
根据您的脚本,我得到了一个想法,就像您在点击按钮后添加文本框一样。因此,当您添加多个文本框时,您需要将文本框字段名称设置为数组,即
<input type="text" name="i[]" value="sample data" />
<input type="text" name="i[]" value="sample data" />
<input type="text" name="i[]" value="sample data" />
修改addTextField((函数
function addTextField(){
var element = document.createElement("input");
element.setAttribute("name", "i[]");
element.setAttribute("value", "sample value");
element.setAttribute("size", 30);
var twitter = document.getElementById("twitterusernames");
twitter.appendChild(element);
}
在message.php文件中,您可以通过数组格式的$_POST[i]获取值。
如果添加的字段只包含辅助数据,我只需要添加另一个具有文本类型的列,并在一个区块中转储这些字段的JSON编码值。
相关文章:
- 如何将字符串值从php页面发送到java脚本页面
- php脚本中无法识别ajax传递的值
- 使用JS在服务器上运行PHP脚本
- Jquery:对返回JSON数据的php脚本的Ajax调用
- 使用php脚本验证访问者的年龄,并在不刷新的情况下根据结果加载iframe
- jQuery DataTable返回带有数据的PHP脚本
- php中的脚本重定向是递归的
- 通过JavaScript设置的表单字段的值不会作为$_POST的一部分传递给PHP脚本
- PHP和JS脚本的奇怪问题,在我刷新页面之前第一次失败
- 如何在脚本部分使用php部分代码中的变量
- 单击Dojo按钮执行PHP脚本
- wp_dequeue_script VS 从函数中删除脚本.php
- 读取 Java 脚本 / PHP 类似文件 / 缺少换行符
- 隐藏输入(html表单确认)-服务器端脚本?(php)
- 同时在java脚本(php模块)中添加/删除类
- jQuery加载img,同时执行Python脚本PHP
- 加载脚本Php / Javascript
- 反向链接检查脚本PHP
- 在没有服务器端脚本(PHP)的情况下,在所有页面上显示相同的内容(页眉、导航栏、边栏、页脚)
- 如何使一个脚本(PHP)登录到一个网站(没有API),并单击一个按钮