2015-03-09 2 views
0

надеются задать другой вопрос здесь, так как главный один ответили на эту тему:Результатов по раскрывающемуся в текстовых полях

How fill form data from Dropdown?

Хотя его ABIT о продолжении.

Я пытаюсь использовать функцию javascript и onChange() для прокрутки файлов, а затем отображать их в полях ввода текста и текстовой области в форме, однако я был бы признателен за любую помощь в разрешении моего javascript. Поскольку он стоит прямо сейчас, я могу вытащить файл в раскрывающееся меню, но когда я выбираю его в раскрывающемся меню, ничего не происходит или не заполняется в форме.

отредактировано для обновления Все ошибки, похоже, разрешены, однако при выборе файла из выпадающего меню ничто не перемещается в текстовые поля.

Javascript:

<script> 

function CodeChange() { 
     var filesContentJS = "$filesContents"        
     var index = filesContentJS.selectedIndex; 
     var e = document.getElementById("CodeList"); 
     var strUser = e.options[e.selectedIndex].value; 
      strUser = "0"; 
      integer document.getElementById("CodeId").value = 0; 
      document.getElementById("CodeName").value = ""; 
      document.getElementById("CodeValue").value = ""; 
     } 
</script> 

обновленный Javascript

И форма HTML и сам PHP для справки:

<input type="hidden" name="Action" value="EDIT" /><input type="hidden" name="Selection" id="Selection" value="-1"><div>Below is the list of your saved codes. To edit your codes, select it from the list.</div> 
<select size="1" name="CodeList" id="CodeList" onchange="CodeChange();"><option value="0">(Add New Code)</option> 
<?php 
    $directory = $directory = 'users/' . $_SESSION['username']; 
    $filesContents = Array(); 
    $files = scandir($directory) ; 

    foreach($files as $file) 
{ 
    if (! is_dir($file)) 
{ 
    $filesContents[$file] = file_get_contents($directory , $file); 

    echo "<option>" . $file . "</option>"; 
} 
} 
?> 
</select> 
    <h3>Saved Codes</h3> 
    <form method="post" action="/evo/avsaveprocess.php"> 

    <input type="hidden" name="Action" value="SAVE" /> 
    <input type="hidden" name="CodeId" id="CodeId" value="0" /> 
    <table width="100%" border="0"> 
     <tr> 
     <td>Description:</td> 
     <td><input type="text" name="CodeDescription" size="40" maxlength="50" id="CodeName" value="" /></td> 
      </tr> 
      <tr> 
      <td valign="top">Code:</td> 
      <td> 
      <textarea rows="10" style="width:99%" name="Code" id="CodeValue"></textarea> 
       </td> 
       </tr> 
      </table> 
      <input type="submit" value="Save" /> 
      </form> 

ответ

1

Ваш массив PHP по-прежнему является массивом. Вы должны преобразовать его в JS. Итак, после того, как вы сделали все в $filesContents[$file] = file_get_contents($directory , $file);, то вам нужно JS:

<script> 
var filesContentJS = <?=json_encode($filesContents) ?>; 
function CodeChange() { 
var e = document.getElementById("CodeList"); // getting dropdown element 
if (e.selectedIndex<=0) { // nothing selected - clean form 
    document.getElementById("CodeId").value = 0; 
    document.getElementById("CodeName").value = ""; 
    document.getElementById("CodeValue").value = ""; 
} else { 
    var eStr = e.options[e.selectedIndex].value; // getting current element value 
    // fill the form with data 
    document.getElementById("CodeId").value = 0;// not sure what CodeId is - but this is the place to fill it 
    document.getElementById("CodeName").value = eStr; 
    document.getElementById("CodeValue").value = filesContentJS[eStr]; 
} 
</script> 
1

Попробуйте с

var e = document.getElementById("CodeList"); 
var strUser = e.options[e.selectedIndex].value; 
+0

Спасибо MOKI, я отредактировал мой оригинальный пост, чтобы показать изменения, которые я сделал. Не уверен, правильно ли я их разместил. Он вернул неподключенную синтаксическую ошибку в} else {, и говорит, что мой CodeChange() не определен. Не уверен, что мне там не хватает. –

+0

Строка после else document.getElementById ("Выбор"). Value = "-1"; Тебе это не нужно. Теперь у вас есть переменная strUser, поэтому используйте strUser = "-1" – mokiSRB

+0

обновил ее. Теперь единственная ошибка, которая возвращается, - это uncaught typerror: не может читать неопределенные неопределенные на этой строке. var strUser = e.options [e.selectedIndex] .value; –

Смежные вопросы