javascript - 提交表单时,使用 javascript 生成的 HTML 文本输入标记不会 POST
问题描述
我有一个表格,询问工作经历,你在哪里申请过大学等。例如,对于他们申请的大学,我一开始有一个文本框,下面有一个按钮,它调用一个 javascript 函数来添加另一个文本输入权在它下面。当我第一次制作这个表单时,我使用了一些不同的数据,然后一旦它们被提交,我就会从中获取它们$_POST
并将它们放入数组中,然后将数组的每个元素添加到我的数据库中的相应表中。但是突然之间,我无法再提交表单,并且收到一条消息,告诉我我已尝试获取未指定的索引。但是,当我检查浏览器中的文本输入时,它们的名称是正确的。我读到我应该命名它们college[]
,以便它们都进入一个数组,但这也没有用....现在呢?
js:
var numcol = 1;
function addnewschool(){
numcol++;
var container = document.getElementById("collegecontainer");
container.appendChild(document.createTextNode(numcol));
var input = document.createElement("input");
input.type = "text";
input.name = 'applied'+numcol;
container.appendChild(input);
container.appendChild(document.createElement("br"));}
html:
<p class="text-dark mb-4">List the Colleges you have applied to:<br>
<div id="collegecontainer" name="collegecontainer">
<input type="text" name='applied1'><br>
</div>
<input type="button" id="addcollege" name="addcollege" value="Add College"
onClick="addnewschool()"><br>
</p>
php:
$applied = array();
foreach($_POST['applied'] as $value){
array_push($applied, $value);
}
更新:好的,所以我将其更改为另一种方式,但没有奏效,所以我决定复制它的早期版本,它正在工作并将其粘贴到正确的布局中。这很有效......所以现在它已经修复了,我继续添加它。我在一些标签中添加了“必需”,稍微更改了一些样式,并稍微更改了我的 javascript 文件。但现在我遇到了和以前一样的问题。我所有的 POST 数组中只有第一个值。我可以添加什么来改变这一点?有没有人遇到过这样的问题?
解决方案
您不需要为每个输入添加不同的名称。只需applied[]
在所有输入名称中使用。
要在 PHP 中获取数组,只需使用$_POST['applied']
.
如果您想稍后使用它们中的每一个,您可以使用 a foreach
,例如
foreach ($_POST['applied'] as $value) {
// Do what you want. Retrieve the value using $value
}
或您喜欢的任何其他方法。
推荐阅读
- c++ - 错误 C2679:二进制“>>”:未定义采用“”类型右侧操作数的运算符(或没有可接受的转换)执行错误
- angular - 使用平台浏览器进行离子社交登录,我尝试在我的项目中使用 openfb 如何使用?
- mysql - 使用 MySQL 的 INSERT IGNORE 来防止重复条目(性能问题?)
- sql - Oracle / PLSQL:SELECT 语句出现 ORA-00933 错误
- python-3.x - 更改文本文档的值时遇到问题
- acumatica - 在 Acumatica 中使用自定义屏幕的批准
- dart - 导航器在 Firebase 消息回调方法中不起作用
- php - 将默认值动态设置为变化
- android - 从回收站列表中删除的数据,但不是从 Sqlite 数据库中删除的数据
- php - symfony 2.8 在制作结帐模块时出现问题(已关闭)