Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提交表单时,使用javascript生成的HTML文本输入标记不会发布_Javascript_Php_Html_Input - Fatal编程技术网

提交表单时,使用javascript生成的HTML文本输入标记不会发布

提交表单时,使用javascript生成的HTML文本输入标记不会发布,javascript,php,html,input,Javascript,Php,Html,Input,我有一个表格,要求提供就业历史,你申请过大学等。例如,对于他们申请的大学,我首先有一个文本框,下面有一个按钮,调用javascript函数在其下方添加另一个文本输入。当我第一次制作这个表单时,我使用了一些不同的数据块,然后一旦它们被提交,我就会从$\u POST中获取它们,并将它们放入数组中,然后将数组中的每个元素添加到我数据库中的对应表中。然而,突然间,我无法再提交我的表单,我收到一条消息,告诉我我试图获取一个未指定的索引。但是,当我在浏览器中检查文本输入时,它们的名称是正确的。我读到,我应该

我有一个表格,要求提供就业历史,你申请过大学等。例如,对于他们申请的大学,我首先有一个文本框,下面有一个按钮,调用javascript函数在其下方添加另一个文本输入。当我第一次制作这个表单时,我使用了一些不同的数据块,然后一旦它们被提交,我就会从
$\u POST
中获取它们,并将它们放入数组中,然后将数组中的每个元素添加到我数据库中的对应表中。然而,突然间,我无法再提交我的表单,我收到一条消息,告诉我我试图获取一个未指定的索引。但是,当我在浏览器中检查文本输入时,它们的名称是正确的。我读到,我应该给它们命名为
college[]
,这样它们都会进入一个数组,但这也不起作用。。。。现在怎么办

js:

html:


更新:好的,我把它改成了另一种方式,但这不起作用,所以我决定复制它的一个早期版本,并将它粘贴到正确的布局中。这就成功了。。。因此,现在它已被修复,我继续添加到它。我在一些标记中添加了“required”,稍微更改了一些样式,并稍微更改了我的javascript文件。但现在我遇到了和以前一样的问题。我所有的POST数组中只有第一个值。我可以添加什么来改变这一点?有人有过类似的问题吗?

您的第一个额外输入应该有索引“applied1”,而不是“applied2”

看看:

var numcol = 1; // put this to 0
function addnewschool(){
numcol++; // or move this to the end of the function
将文本输入字段命名为
applied[]
,当您处理表单时,
$\u post['applied']
的post值将是一个数组,该数组已经为您填充了许多条目

要将数据放入表中,请执行以下操作:

foreach ($_POST['applied'] as $id => $applied) { 

    $sql = "INSERT INTO Colleges(id, college) VALUES('$id','$applied')"; 

    if($conn2->query($sql) === TRUE){ 
        echo "New Record created successfully"; 
    } else { 
        echo "Error: " . $sql . "<br>" . $conn2->error; 
    } 
}  // end of foreach
foreach($\u POST['applicated']作为$id=>$applicated){
$sql=“插入学院(id,学院)值($id',$applied”)”;
如果($conn2->query($sql)==TRUE){
echo“新记录创建成功”;
}否则{
echo“Error:”.$sql.“
”$conn2->错误; } }//foreach的结尾
您不需要为每个输入添加不同的名称。只需在所有输入名称中使用
applied[]

要在PHP中获取数组,只需使用
$\u POST['applicated']

如果以后要使用它们中的每一个,可以使用
foreach
,如

foreach ($_POST['applied'] as $value) {
    // Do what you want. Retrieve the value using $value
}

或者你喜欢的任何其他方法。

只需使用
applied[]
作为
name
。是的,这就是我在发布这个问题之前尝试的方法。如何从将它们放在该数组中到将它们放在我的sql db表中,因为当我尝试访问数组的元素时,我遇到了一个问题,所以我尝试使用print\r($applicated)打印整个数组,但这不起作用,所以我尝试了print\r(array\u value($applicated)还有什么会超出这个问题的范围。如果遇到问题,你会想尝试一下,然后返回一个不同的问题。提示,循环数组并在循环中添加记录(
foreach
是你的朋友)。使用
print\r($\u POST['applicated']
for($i=0;$iquery($sql)===TRUE){echo“已成功创建新记录”}否则{echo”错误:“.$sql.”
“$conn2->错误;}}不,因为这是html表单中已经存在的元素的名称。然后应用第一个添加的元素2这不会改变任何事情,所以当我这样做时,它应该像java中的高级for循环一样,循环数组中的每个元素吗?因为这只给了我第一个元素,就像以前一样。你到底在做什么?我已经知道了我试过了,它对我有效。表格是一份奖学金申请表。所以我将每个学院连同一个外键($id)一起存储在一个表中,外键引用了申请人个人信息存储的表。但是当我这样做时:foreach($_POST['applicated']as$value){echo$value;}唯一被打印出来的想法是我输入的第一所大学。我只是遗漏了什么吗?这很奇怪。我试过foreach($_POST['applicated']as$value){print$value.
“;}并且它起作用了。我能理解出了什么问题。
var numcol = 1; // put this to 0
function addnewschool(){
numcol++; // or move this to the end of the function
foreach ($_POST['applied'] as $id => $applied) { 

    $sql = "INSERT INTO Colleges(id, college) VALUES('$id','$applied')"; 

    if($conn2->query($sql) === TRUE){ 
        echo "New Record created successfully"; 
    } else { 
        echo "Error: " . $sql . "<br>" . $conn2->error; 
    } 
}  // end of foreach
foreach ($_POST['applied'] as $value) {
    // Do what you want. Retrieve the value using $value
}