2009-11-30 24 views
0

我在過去的幾個小時裏一直有很多麻煩,現在我真的沒有看到問題出在哪裏。我在互聯網上發現的每一個代碼段都告訴我我做得對,但由於某種原因,沒有任何工作。用Javascript和CodeIgniter動態添加HTML字段

基本上,我有一個窗體,需要根據所需字段的數量動態添加字段。我的javascript做這工作得很好:

function ajouterStagiaires() 
    { 
    var innerHTML = new String(); 
    innerHTML = document.getElementById('stagiaires').innerHTML; 
    var nombreStagiaires = document.getElementById('nbStagiairesConnus').value; 

    innerHTML += "<tr><td><b>Nom </b></td><td><b>Matricule</b> </td></tr>"; 
    for(var i=0;i<nombreStagiaires;i++) 
    { 
     innerHTML += "<tr><td><input type='text' name='noms[]' /></td><td><input type='text' name='matricules[]' /></td></tr>"; 
    } 
    document.getElementById('stagiaires').innerHTML = innerHTML; 
    document.getElementById('nbStagiairesConnus').value = nombreStagiaires; 

} 

字段中正確的頁面添加的,但是當我去我的PHP代碼,沒有被「發現」的NOMS和matricules做了$ _POSTs(是的,我在網頁中的字段中輸入了一些東西)。

if (isset($_POST['matricules'])) 
{ 
    echo "foo"; 
} 

「foo」從不打印。我解決了大多數常見錯誤:我的字段被添加爲ARE(CodeIgniter的echo form_open_multipart('foobar');)。表單中的其他所有字段都可以很好地工作。

我唯一能看到的就是CodeIgniter在JavaScript或其他類似的問題上有問題(儘管我不知道爲什麼它會遇到問題......)但除此之外,我完全難倒。

在此先感謝。

回答

0

使用FireBug來檢查源代碼並驗證字段是否實際添加到了你想要的地方。

1

在你的javascript中,你在添加輸入字段的地方,也輸入一個值=''。

的innerHTML + = ...「輸入型= '文本' 名稱= 'NOMS []' 值= '' ..

在您的CI控制器,試試這個來代替:

$ matricules [] = $這個 - >輸入 - >交的( 「matricules」);

如果(is_array($ matricules)) 的print_r($ matricules);

這應該很好地打印從窗體傳遞的數組值。

歡呼聲,