2016-03-16 3 views
0

Я пытался создать раскрывающееся меню с динамическим содержимым из php-элементов в javascript, но когда я нажимаю кнопку «Добавить элемент», ничего не происходит. элементы из PHP хранятся в $item[]Как создать динамическое выпадающее меню с php в javascript?

<script> 
function addInput() 
{ 
    var table = document.getElementById("item"); 
    var row = table.insertRow(0); 
    var cell1 = row.insertCell(0); 
    var cell2 = row.insertCell(1); 
    var cell3 = row.insertCell(2); 
    var cell4 = row.insertCell(3); 
    cell1.innerHTML = "<select name="i1[]"> 
      <?php 
       echo "<option selected disabled>Choose Item Code</option>"; 
       $i=0; 
       while(!empty($item[$i])) 
       { 
        echo "<option value=".$item[$i].">".$item[$i]."</option>"; 
        $i++; 
       } 
      ?></select>"; 
    cell2.innerHTML = "<input type='text' name='q1[]' size=10>"; 
    cell3.innerHTML = "<input type='text' name='p1[]' size=10>"; 
} 
</script> 
+1

Просто указывая т вот ошибка в вашей строке cell1.innerHTML = " ', а затем в конце:' '; ' –

+0

вы можете показать свой html с элементами элементов? – fsn

ответ

1

Ваш символ должен добавить «+» после каждой строки, вы порождена PHP

function addInput() 
{ 
     var table = document.getElementById("item"); 
     var row = table.insertRow(0); 
     var cell1 = row.insertCell(0); 
     var cell2 = row.insertCell(1); 
     var cell3 = row.insertCell(2); 
     var cell4 = row.insertCell(3); 
     cell1.innerHTML = ""+ 
      "<select name='i1[]'>"+ 
       <?php 
         echo "'<option selected disabled>Choose Item Code</option>'+"; 
         $i=0; 
         while(!empty($item[$i])) 
         { 
           echo "'<option value=".$item[$i].">".$item[$i]."</option>'+"; 
           $i++; 
         } 
       ?> 
     "</select>"; 
     cell2.innerHTML = "<input type='text' name='q1[]' size=10>"; 
     cell3.innerHTML = "<input type='text' name='p1[]' size=10>"; 
} 
+0

Спасибо, что произошло, когда у меня нет +? – weeo

1

Вам нужно процитировать код, который вы гулкие с PHP, так как он будет рассмотрен и выполнен в виде яваскрипта коды не в виде строки кавычки, которые должны быть назначены innerHTML собственности.

Кроме того, вы должны конкатенировать варианты.

Лучше построить свой выбор с PHP переменных, где вы добавляете все опции к нему, а затем назначить его один выстрел в клетку innerHTML

function addInput() 
{ 
    var table = document.getElementById("item"); 
    var row = table.insertRow(0); 
    var cell1 = row.insertCell(0); 
    var cell2 = row.insertCell(1); 
    var cell3 = row.insertCell(2); 
    var cell4 = row.insertCell(3); 

    <?php 
     $i=0; 
     $select = "<select name='i1[]'"; 
     $options = "<option selected disabled>Choose Item Code</option>"; 
     while(!empty($item[$i])) 
     { 
      $options .= "<option value=".$item[$i].">".$item[$i]."</option>"; 
      $i++; 
     } 

     $select .= $options . "</select>"; 
    ?> 

    cell1.innerHTML = "<?php echo $select;?>"; 
    cell2.innerHTML = "<input type='text' name='q1[]' size=10>"; 
    cell3.innerHTML = "<input type='text' name='p1[]' size=10>"; 
} 
+0

спасибо! оно работает. Почему это не работает с помощью простого исправления «->»? – weeo

0

Используйте это так:

<script> 
function addInput() 
{ 
    var table = document.getElementById("item"); 
    var row = table.insertRow(0); 
    var cell1 = row.insertCell(0); 
    var cell2 = row.insertCell(1); 
    var cell3 = row.insertCell(2); 
    var cell4 = row.insertCell(3); 
    cell1.innerHTML = '<select name="i1[]"> 
      <?php 
       echo "<option selected disabled>Choose Item Code</option>"; 
       $i=0; 
       while(!empty($item[$i])) 
       { 
        echo "<option value=".$item[$i].">".$item[$i]."</option>"; 
        $i++; 
       } 
      ?></select>'; 
    cell2.innerHTML = "<input type='text' name='q1[]' size=10>"; 
    cell3.innerHTML = "<input type='text' name='p1[]' size=10>"; 
} 
</script>