【发布时间】:2018-01-23 23:16:01
【问题描述】:
所以必须有一种更简单的方法来创建它。我有一个带有以下 HTML 的表单:
<p>Names</p>
<ul class="container1" style="list-style-type:none;">
<li><input type="text" size="10" name="Name" /></li>
</ul>
<input type="button" class="add_form_field" value="+">
然后,如果用户需要添加更多名称,我添加了一些 JS 来创建新的文本框: 取自:http://www.sanwebcorner.com/2017/02/dynamically-generate-form-fields-using.html
$(document).ready(function() {
var max_fields = 10;
var wrapper = $(".container1");
var add_button = $(".add_form_field");
var x = 1;
$(add_button).click(function(e){
e.preventDefault();
if(x < max_fields){
x++;
$(wrapper).append('<div><input type="text" name="Name"/><a href="#" class="delete">Delete</a></div>'); //add input box
}
else
{
alert('You Reached the limits')
}
});
$(wrapper).on("click",".delete", function(e){
e.preventDefault(); $(this).parent('div').remove(); x--;
})
});
$(document).ready(function() {
var max_fields = 10;
var wrapper = $(".container1");
var add_button = $(".add_form_field");
var x = 1;
$(add_button).click(function(e){
e.preventDefault();
if(x < max_fields){
x++;
$(wrapper).append('<div><input type="text" name="Name"/><a href="#" class="delete">Delete</a></div>'); //add input box
}
else
{
alert('You Reached the limits')
}
});
$(wrapper).on("click",".delete", function(e){
e.preventDefault(); $(this).parent('div').remove(); x--;
})
});
function check() {
var temp = document.getElementsByClassName("formElem");
if (document.getElementById("ckbox").checked) {
for (var e = 0; e < temp.length; e++) { // For each element
var elt = temp[e];
elt.required = false;
}
} else {
for (var e = 0; e < temp.length; e++) { // For each element
var elt = temp[e];
elt.required = true;
}
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Names</p>
<ul class="container1" style="list-style-type:none;">
<li><input type="text" size="10" name="Name" /></li>
</ul>
<input type="button" class="add_form_field" value="+">
然后我需要使用 PHP 将这些附加值写入 .CSV 文件,这就是我遇到问题的地方:
<?php
// Receive form Post data and Saving it in variables
header('Location: thanks.html');
$Name = "";
$Name = @$_POST ['Name'];
// Write the name of text file where data will be store
$filename = "file.csv";
// Merge all the variables with text in a single variable.
$f_data= '
Names for people: '.$Name.' ';
$file = fopen($filename, "r+");
fwrite($file,$f_data);
fclose($file);
?>
最后一个附加的文本框被写入 csv 文件会发生什么情况。有没有办法传递这些创建的文本框,以便它们可以写入文件?非常相似的问题:Pass dynamic text input to PHP in order to write to text file
但我不确定这是否可以通过文本框完成。
【问题讨论】:
-
检查您的开发者控制台,看看是否有任何使用错误报告php.net/manual/en/function.error-reporting.php 设置为捕获和显示。如果一切正常但无法写入文件,则可能是权限问题和/或您在标题之前输出。
-
您还应该删除
@$_POST中的@,因为它是一个错误抑制器。 -
我正在回复 ishegg 和 Fred-ii-。所以它工作正常,我只是没有在 JS 中正确添加我的 id。实际上,我最终使用了一个更简单的代码来动态创建文本框。感谢ishegg 和Fred-ii-的帮助!
标签: javascript php jquery html csv