get函数不会从表单中动态创建的字段中获取数据
get function does not fetch data from dynamically created fields in form
我正在尝试使用PHP存储动态创建的字段中的数据。固定字段不是问题。我在获取"弹性"字段时遇到了麻烦;也就是说,用户可以生成字段(直到最大值为3)来为事件添加更多参与者。我搜索过这个网站,一般的互联网,并学习了PHP手册。解决方案似乎在于使用foreach
,但我还不够聪明和熟练,无法编写正确的函数。
到目前为止,我想出的代码(正在进行的工作)是:
HTML:
<!DOCTYPE html PUBLIC etc >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
var counter = 0;
var limit = 3;
var veldwaarde ="";
function addInput(divName) {
if (counter == limit) {
alert("More then " + counter + " partcipants not possible ");
} else {
var newdiv = document.createElement('div');
newdiv.innerHTML = "<table><tr><td>Naam deelnemer " + (counter + 1) + "</td><td><input type='text' name='myInputs[]'/></td></tr>" + "<tr><td>Schoenmaat deelnemer " + (counter + 1) + "</td><td><br><input type='text' name='myInputs2[]'></td></tr></table>";
document.getElementById(divName).appendChild(newdiv);
counter++;
}
}
</script>
</head>
<form name="formulier" method="get" action="invoer_data.php" >
<table>
<tr><td width="15%">Naam:</td><td width="15%"><input type="text" name="naam" >id="naam" value="" ></td></tr>
<tr><td width="15%">Schoenmaat:</td><td><input type="text" name="schoenmaat" > >id="schoenmaat" value="" ></td></tr>
<!-- <tr><td width="15%">Adres:</td><td><input type="text" name="adres" id="adres" >value="" ></td></tr>
<tr><td width="15%">Postcode:</td><td><input type="text" name="postcode" >id="postcode" value="" ></td></tr>
<tr><td width="15%">Woonplaats:</td><td><input type="text" name="woonplaats" >id="woonplaats" value="" ></td></tr>
<tr><td width="15%">E-mail:</td><td><input type="text" name="email" id="email" >value="" ></td></tr>
<tr><td width="15%">Telefoon overdag:</td><td><input type="text" name="telefoon" >id="telefoon" value=""></td></tr> -->
<tr><td width="15%">More partcipants:</td><td><div id="dynamicInput" > <a href="" >onClick="addInput('dynamicInput');return false;"><p style="color:red;">Add (max 3) >partcipants</p></a></td></tr>
<td><input type="submit" name="verzenden" value="Verzenden"></td>
</table>
</form>
PHP:
<?php
// collect varaiables
@$naam = addslashes($_GET['naam']);
@$schoenmaat = addslashes($_GET['schoenmaat']);
@$adres = addslashes($_GET['adres']);
@$postcode = addslashes($_GET['postcode']);
@$woonplaats = addslashes($_GET['woonplaats']);
@$email = addslashes($_GET['email']);
@$telefoon = addslashes($_GET['telefoon']);
// next two lines are for the dynamically generated fields
@$myInputs = addslashes($_GET['myInputs']);
@$myInputs2 = addslashes($_GET['myInputs2']);
// Validation
if (strlen($naam) == 0) {
die("<p align='"center'"><font face='"Vrinda'" size='"4'"color='"#FF0000'">First field is empty</font></p>");
}
//saving record in a text file to test the GET function
$pfw_file_name = "invoerDynvelden.txt";
$pfw_first_raw = "naam,schoenmaat,adres,postcode,woonplaats,email,telefoon,naam2,schoenmaat2,naam3,schoenmaat3,naam4,schoenmaat4'r'n";
$pfw_values = "$naam,$schoenmaat,$adres,$postcode,$woonplaats,$email,$telefoon,$naam2,$schoenmaat2,$naam3,$schoenmaat3,$naam4,$schoenmaat4'r'n";
$pfw_is_first_row = false;
if(!file_exists($pfw_file_name)) {
$pfw_is_first_row = true;
}
if (!$pfw_handle = fopen($pfw_file_name, 'a+')) {
die("Cannot open file ($pfw_file_name)");
exit;
}
if ($pfw_is_first_row)
{
if (fwrite($pfw_handle, $pfw_first_raw ) === FALSE) {
die("Cannot write to file ($pfw_filename)");
exit;
}
}
if (fwrite($pfw_handle, $pfw_values) === FALSE) {
die("Cannot write to file ($pfw_filename)");
exit;
}
fclose($pfw_handle);
//saving record to MySQL database DBxxxxx still to be developed
?>
<body>
<a href="index.htm">Returm to entry screen</a><br/>
</body>
您在html/javascript:中设置这样的动态输入
name='myInputs[]'
^^ an array
因此,要在php中获取值,您需要循环通过:
$_GET['myInputs'] // this is an array
例如使用CCD_ 2。
如果你只是想可视化这些值,你也可以使用类似的东西:
implode(', ', $_GET['myInputs'])
相关文章:
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- 将值传递给jquery创建的输入字段
- 创建一个带有可变字段的json对象
- 使用具有用户定义字段的新请求者创建新的Zendesk票证
- 在表单输入字段中创建默认值
- 如何将typeahead.js(Bloodhound)添加到jQuery动态创建的字段中
- 如何使用Typescript创建一个包含对象的字段的新对象
- 删除创建的 JavaScript 字段集
- 如何动态删除使用 JavaScript 动态创建的输入字段
- 流星:在创建帐户上添加字段
- 使用parsley.js验证动态创建的字段
- 在原始对象的基础上创建新对象的最简单方法,但没有几个字段
- I'm试图创建一个html表单,根据字段的输入生成url地址
- Angular2-对有条件创建的输入字段进行表单验证
- Mongoose创建一个文档,如果找不到指定的字段,则更新文档中的数组
- 为动态创建的字段jQuery创建一个函数或事件
- 使用javascript创建输入字段
- ExtJS 5如何在模型中动态创建字段
- 想提交表单元素,同时通过追加按钮创建字段
- 动态创建字段时,jQuery日期选择器和时间选择器不起作用