Php 无法从AJAX生成的动态表单中收集$\u POST值

Php 无法从AJAX生成的动态表单中收集$\u POST值,php,jquery,ajax,forms,Php,Jquery,Ajax,Forms,我有一个HTML表单,部分是用PHP生成的,部分是用AJAX生成的(我是新手),我已经让脚本按预期工作,我可以收集PHP生成的脚本,但不能收集AJAX生成的脚本。以下是表格: --编辑:更改了脚本的位置,并将受影响帖子上的“id”重命名为“name”,但无效 index.jquery.php echo " <form method='POST'>"; //Här börjar formuläret man fyller i. echo " <p>

我有一个HTML表单,部分是用PHP生成的,部分是用AJAX生成的(我是新手),我已经让脚本按预期工作,我可以收集PHP生成的脚本,但不能收集AJAX生成的脚本。以下是表格:

--编辑:更改了脚本的位置,并将受影响帖子上的“id”重命名为“name”,但无效

index.jquery.php

echo "      <form method='POST'>"; //Här börjar formuläret man fyller i.
echo "          <p>S&auml;llskapets namn: <input type='text' name='groupname' class='required'/></p>";
echo "          <p>Antal deltagare: <select name='participantsAmount' id='participantsAmount' data-mini='true'>"; //Nu börjar dropdown-listan över antal deltagare
echo "              <option value='0'>V&auml;lj antal</option>";
for ($i = 1; $i < 11; $i++)
{
    echo "<option value='$i'>$i</option>";
}
echo "          </select>";
echo "          <div id='participants_added'>"; //I det här området skrivs alla deltagar-entryn ut från AJAX-koden nedan

echo "          </div>";
echo "  </form>";


if(isset($_POST['submitform']))
{
    $groupname = $_POST['groupname'];
    $misc = $_POST['misc'];
    $email = $_POST['email'];
    $participants = $_POST['participantsAmount'];

    for($i = 0; $i < $participants; $i++)
    {
        $participant_name = $_POST['participant_name['.$i.']'];
        $participant_age = $_POST['participant_age['.$i.']'];
        $allergies = $_POST['allergies['.$i.']'];
        $sql = mysql_query("INSERT INTO submits (name, allergies, misc, age, email, groupname) VALUES ('$participant_name', '$allergies', '$misc', '$participant_age', '$email', '$groupname')")or die(mysql_error());
    }
}
?>
<script>
var html = ''; //Allting som hamnar i den här variabeln skrivs ut i slutet av skriptet.
$(document).on('change', '#participantsAmount', function() { //AJAX-delen som lägger till deltagar-rutorna (namn1, ålder. namn2, ålder etc.)
    participants = $(this).val();
    html = '';
        for (var i = 0; i < participants; i++) {
            var j = i + 1;
            html += '<fieldset class="ui-grid-a"><div class="ui-block-a"><label for="participant_name['+i+']">Namn ' + j + '</label><input type="text" name="participant_name['+i+']" placeholder="Namn"/></div>';
            html += '<div class="ui-block-b"><label for="participant_age['+i+']">&Aring;lder</label><input type="text" name="participant_age['+i+']" placeholder="&Aring;lder" /></div>';
            html += '</fieldset>';
            html += '<p><label for="allergies['+i+']">Matrestriktioner/F&ouml;do&auml;mnesallergier</label><input type="text" name="allergies['+1+']" placeholder="Allergier" /></p>';
    }
    html += '<p><label for="misc">&Ouml;vrigt</label><textarea name="misc" id="misc"></textarea></p>';
    html += '<p><label for="email">E-postadress</label><input type="text" name="email" id="email" class="required email" placeholder="E-postadress" /></p>';
    html += '<p><input type="submit" name="submitform" value="Skicka anm&auml;lan" /></p>';
    $('#participants_added').html(html);
    //$('#participantsAdded').append('<input type="submit" value="Submit" />');
    $('.ui-page').trigger('create');
});
</script>
echo”“//Här börjar formuläret man fyller一世。
回声“Sä;llskapets namn:

”; 回声“Antal deltagare:”//Nu börjar下拉列表位于安塔尔三角洲 echo“Vä;lj antal”; 对于($i=1;$i<11;$i++) { 回音“$i”; } 回声“; 回声“//我认为这是一个由阿贾克斯·科登·内丹主持的会议 回声“; 回声“; 如果(isset($_POST['submitform'])) { $groupname=$\u POST['groupname']; $misc=$_POST['misc']; $email=$_POST['email']; $participants=$_POST['participantsAmount']; 对于($i=0;$i<$participants;$i++) { $participant_name=$_POST['participant_name['.$i.]']; $participant_age=$_POST['participant_age['.$i.]]; $allergies=$_POST['allergies['.$i.]']; $sql=mysql\u query(“插入提交(名称、过敏、杂项、年龄、电子邮件、组名)值(“$participant\u name”、“$allergies”、“$misc”、“$participant\u age”、“$email”、“$groupname”)或die(mysql\u error()); } } ?> var html=''//所有这一切都是因为我不知道该怎么做。 $(文档).on('change','participantsAmount',function(){//AJAX delen som lägger till deltagar rutorna(namn1,ålder.namn2,ålder等) 参与者=$(this.val(); html=''; 对于(变量i=0;i<参与者;i++){ var j=i+1; html+='Namn'+j+''; html+='Å;lder'; html+=''; html+='Matrestriktioner/Fö;doä;mnesallergier

'; } html+='Ö;vrigt

'; html+='E-postaddress

'; html+='

'; $('#参与者添加').html(html); //$('participantsAdded')。附加(''); $('.ui页').trigger('create'); });

如前所述,我能够收集和存储电子邮件、groupname和misc POST,但不能收集和存储任何其他邮件。据我所知,我需要用于事件侦听器函数的AJAX脚本,否则我可能会遗漏这个脚本。非常感谢您的帮助。

问题很简单:您忘记为循环中的表单字段添加
name
属性:

<input type="text" id="participant_name['+i+']" placeholder="Namn"/>

应该是:

<input type="text" name="participant_name['+i+']" placeholder="Namn"/>

等等

我认为你不能使用像
id=“participant\u name['+I+']”“
这样的东西,因为
[
]
字符不是


除此之外,您的方法似乎有点奇怪,整个javascript部分都放在
div
中,您可以用该javascript的结果覆盖它。我会把javascript放在其他地方以避免潜在的问题,尽管我从来没有尝试过…

你有什么错误吗?显然你需要关闭
错误报告(-1)
我不理解那些开发时关闭错误报告的开发人员。这让我大吃一惊。我的坏朋友,看着一份旧的错误日志。是的,在循环中有索引错误,但我现在已经涵盖了除一个之外的所有内容,我觉得它应该是有效的,但不幸的是它没有。哦,是的,我用新的结构更新了问题