Javascript 在ajax调用中向每个表单输入添加单个隐藏输入值

Javascript 在ajax调用中向每个表单输入添加单个隐藏输入值,javascript,jquery,arrays,ajax,Javascript,Jquery,Arrays,Ajax,我有一个带有按钮的表单,它可以添加动态输入字段,这就产生了一个ajax问题。我的ajax帖子给了我500个错误 但我现在的控制台数据日志如下: 但我需要将这些作为 insert into ticker_content (ticker_id, content) values (1, 'one'), (1, 'two'); 如果这有道理的话 所以基本上,问题是我在任何给定的时间都有多个输入(包含文本值)和一个隐藏的形式的输入,它给了我正确的股票代码ID 但是,我需要使我的数组包含元素,

我有一个带有按钮的表单,它可以添加动态输入字段,这就产生了一个ajax问题。我的ajax帖子给了我500个错误 但我现在的控制台数据日志如下:

但我需要将这些作为

insert into ticker_content (ticker_id, content)
     values (1, 'one'), (1, 'two');
如果这有道理的话

所以基本上,问题是我在任何给定的时间都有多个输入(包含文本值)和一个隐藏的形式的输入,它给了我正确的股票代码ID

但是,我需要使我的数组包含元素,每个元素都有输入文本值和股票代码ID。因此,对于创建和填充的每个输入,我还需要将表单隐藏输入的值分配给它,以便我可以将它们成对发送到我的foreach循环并插入

下面是为插入调用的my addticker.php:

$items = $_POST['Items'];
$tickerID = $_POST['tickerID'];

foreach ($items as $item){

    $addTicker = "
        INSERT INTO ticker_content (tickerID, content)
        values ('$tickerID', '$item');
     "
     $mysqlConn->query($addTicker);
}
所以基本上,对于每个Items[]值,我需要插入相同的隐藏字段

这是我的表单和JS代码供参考。第一个JS块主要用于动态添加输入的功能,但最后一个JS块是使用serializeArray()的ajax


项目1:

+
首先,您的代码中缺少一个分号(这可能会导致500错误)

其次,如果您希望将表单中的所有字段捆绑为一个查询,那么下面将构建一个类似于您在前面的问题中提到的查询:

在股票代码内容(股票代码id,内容)中插入值(1,'1',(1,'2'),…

HTML还需要做一些工作,因为
id
属性在页面上应该是唯一的。由于要复制表单,因此应执行以下操作:

<form id="Items<?php echo $ticker['ticker']?>" class="tickerform" method="post">   

首先,您的代码中缺少一个分号(这可能会导致500错误)

其次,如果您希望将表单中的所有字段捆绑为一个查询,那么下面将构建一个类似于您在前面的问题中提到的查询:

在股票代码内容(股票代码id,内容)中插入值(1,'1',(1,'2'),…

HTML还需要做一些工作,因为
id
属性在页面上应该是唯一的。由于要复制表单,因此应执行以下操作:

<form id="Items<?php echo $ticker['ticker']?>" class="tickerform" method="post">   

addticker.php
返回一个错误500,这意味着“内部服务器错误”,通常是由于php中的语法错误造成的。我看到查询字符串末尾缺少一个半列。当您遇到错误500时,通常可以在PHP错误日志中看到问题所在。您是否收到过SQL注入的警告?你的代码易受攻击。好的,很好。我加了分号,当时得到了200,但没有插入。有没有更好的方法可以在页面或控制台上测试结果?我只是觉得它不会以我期望的方式插入,特别是在添加了半列之后,为了调试需要使用多个输入,您可以使用浏览器的开发工具。请参阅:转到“网络”选项卡并检查参数和输出,以查看ajax调用的作用。出于调试目的,您可能希望在
addticker.php
中回显一些内容,以告诉自己发生了什么。非常感谢!您
addticker.php
返回一个错误500,这意味着“内部服务器错误”,通常是由于php中的语法错误造成的。我看到查询字符串末尾缺少一个半列。当您遇到错误500时,通常可以在PHP错误日志中看到问题所在。您是否收到过SQL注入的警告?你的代码易受攻击。好的,很好。我加了分号,当时得到了200,但没有插入。有没有更好的方法可以在页面或控制台上测试结果?我只是觉得它不会以我期望的方式插入,特别是在添加了半列之后,为了调试需要使用多个输入,您可以使用浏览器的开发工具。请参阅:转到“网络”选项卡并检查参数和输出,以查看ajax调用的作用。出于调试目的,您可能希望在
addticker.php
中回显一些内容,以告诉自己发生了什么。非常感谢!好的,我实际上让它在同一个表单上处理多个字段!它为每个具有正确ID的表单插入了一条记录。但是,其他表单也有一个“提交”按钮,该按钮不起作用(可能是因为我表单中的提交输入上有一个ID?)?所以无论有多少个表单,功能都是一样的?所以基本上,提交第一个表单在功能上很好,但我可能需要在提交按钮上进行计数或其他操作,以便它可以在每个表单上工作form@Whisou138更新答案。你是最棒的!谢谢,好吧,我真的让它在同一个表单上处理多个字段了!它为每个具有正确ID的表单插入了一条记录。但是,其他表单也有一个“提交”按钮,该按钮不起作用(可能是因为我表单中的提交输入上有一个ID?)?所以无论有多少个表单,功能都是一样的?所以基本上,提交第一个表单在功能上很好,但我可能需要在提交按钮上进行计数或其他操作,以便它可以在每个表单上工作form@Whisou138更新答案。你是最棒的!非常感谢。
<form id="Items<?php echo $ticker['ticker']?>" class="tickerform" method="post">   
// Using $(this) in Jquery allows you to access the 
// element that is making the method call (in this case, the form)
$(".tickerform").submit(function(e) {
    e.preventDefault();
    var data = $(this).serializeArray(); 
    console.log(data);
    $.ajax({
       type: "POST",
       url: "addticker.php",
       data: data, // Don't need to serialize again, 'var data' is still in scope.
       success: function(data)
       {
           alert(data); // show response from the php script.
       }
    });
});