2014-02-12 70 views
-1

我有一個HTML表單,部分用PHP生成,部分用AJAX生成(我是新手),而且我已經使腳本按預期工作,我可以收集PHP製作的腳本,但不能收集AJAX製作的腳本。這裏是表格:

- EDIT:改變了腳本的位置,並在受影響的POST上將「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> 

如前所述,我能夠收集和存儲電子郵件,組名和其它POST的,而不是其他的任何。據我所知,我需要爲事件監聽器函數使用AJAX腳本,否則我可能會將其中一個留下。任何幫助表示讚賞。

+0

你有任何錯誤嗎? –

+0

沒有,根本沒有 – Odecif

+0

顯然你需要把'error_reporting(-1)'我不懂開發人員開發錯誤報告。它打動了我的想法。 –

回答

0

的問題很簡單:你忘了添加name屬性爲在循環表單字段:

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

應該是:

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

我不認爲你可以使用像id="participant_name['+i+']"這樣的東西作爲[]字符不是allowed in an id

除此之外,你的方法似乎有點奇怪,整個JavaScript部分放在div,你用這個javascript的結果覆蓋。我會把JavaScript的地方,以避免潛在的問題,雖然我從來沒有真正嘗試過這...

+0

我覺得它應該工作,但不幸的是它沒有。哦,是的,我用新的結構更新了這個問題 – Odecif