Динамическое добавление полей HTML с Javascript и CodeIgniter - PullRequest
0 голосов
/ 30 ноября 2009

У меня было много проблем с этим в течение последних нескольких часов, и я действительно не вижу, в чем проблема. Каждый фрагмент кода, который я нахожу в Интернете, говорит мне, что я делаю это правильно, но по какой-то причине ничего не работает.

По сути, у меня есть форма, которая требует динамического добавления полей в зависимости от количества необходимых полей. Мой 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-коду, $ _POST, сделанные для чисел и матриц, не «обнаруживаются» (да, у меня есть вещи, введенные в мои поля на веб-странице) .

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

"foo" никогда не печатается. Я устранял большинство распространенных ошибок: мои поля добавляются в форму (эхо CodeIgniter form_open_multipart ('foobar');). Любое другое поле внутри формы работает отлично.

Единственное, что я вижу, это то, что у CodeIgniter есть проблемы с JavaScript или чем-то в этом роде (хотя я не знаю, ПОЧЕМУ у него будут проблемы с этим ...), но кроме этого, я полностью озадачен .

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 03 декабря 2009

В вашем javascript, где вы добавляете поля ввода, также введите значение = ''.

innerHTML + = ... "input type = 'text' name = 'noms []' value = '' ..

В вашем контроллере CI попробуйте это вместо:

$ matricules [] = $ this-> input-> post ("matricules");

если (is_array ($ matricules)) print_r ($ matricules);

Это должно вывести массив значений, переданных из формы.

ура

0 голосов
/ 01 декабря 2009

используйте FireBug , чтобы проверить исходный код и проверить, действительно ли поля добавлены туда, где вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...