2016-04-27 3 views
0

У меня есть следующий код javascript, который должен открыть модальное окно с тремя полями, которые необходимо изменить, а затем отправить их для хранения в базе данных, но это не так. работайте так, как предполагалось, по какой-то неизвестной причине для меня, когда я изменяю любое из полей, таких как область или nivel, и нажимаю кнопку «отправить», она не отправляет по новым данным, а предыдущая - как данные фиксируются при загрузке страницы, а не когда я нажал на кнопку отправки, вот код:Функция обновления javascript не работает

function mostrar(enlace, id, nivel, area, trabajo) { 
    document.getElementById("btnEditar").onclick = function() { 
    var area = document.getElementById("area").value; 
    var nivel = document.getElementById("nivel").value; 
    var trabajo = document.getElementById("area_de_trab").value; 
    editarRegistro(id, area, nivel, trabajo); 
    } 
} 

я также должен сказать, что функция «mostrar» является обработчиком OnClick событие, любые предложения о том, как я могу это исправить ? Заранее спасибо.

Здесь кнопка, чтобы показать окно модального, который в то же время прикрепить обработчик событий для кнопки отправки, который находится в модальное окно:

while($row = mysql_fetch_array($resultado)) 
    { 

     echo "<tr>"; 
     echo "<th>".$row["idusuario"]."</th>"; 
     echo "<th>".$row["nombre"]."</th>"; 
     echo "<th>".$row["username"]."</th>"; 
     echo "<th>".$row["area"]."</th>"; 
     echo "<th>".$row["area_de_trab"]."</th>"; 
     echo "<th>".$row["nivel"]."</th>";        
     echo "<th><a type='submit' value='Eliminar' name='id' onclick='eliminar($row[idusuario])' class='btn btn-success'><span class='glyphicon glyphicon-trash'></span></a> 
          <a type='submit' href = '#miventana' value='editar' onclick='mostrar(this,$row[idusuario],\"".$row['nivel']."\",\"".$row['area']."\",\"".$row['area_de_trab']."\")' data-toggle='modal' class='btn btn-success'><span class='glyphicon glyphicon-pencil'> 
          </span></a></th>"; 
          echo "</tr>"; 
        } 

и кнопку для отправки данных:

<button type="submit" class="btn btn-primary" name="editar" value="editar" id="btnEditar">guardar</button> 
+0

Кто звонит функцию mostrat? Поместите document.getElementById ("btnEditar"). Onclick = function() {..} из mostrar & try. Также, какова цель этого аргумента nivel, area, trabajo в mostrar? – brk

+0

вызывается кнопкой редактирования, а editarRegistro() - это функция ajax, которая отправляет данные. Дело в том, что я должен сделать это таким образом из-за переменной «id», которую я не могу разместить непосредственно в editarRegistro, в качестве обработчика события для кнопки – Paul

ответ

0

вам нужно отделить указанную функцию из обработчика OnClick:

document.getElementById("btnEditar").onclick = mostrar; 


function mostrar() 
{var area = document.getElementById("area").value;... 

, а затем, потому что вы получаете значения в этой функции, вам не нужно передавать их в качестве аргументов в вызове функции.

+0

Или просто 'document.getElementById (« btnEditar »). Onclick = mostrar;' – Rayon

+0

thanks @Rayon - с поправками – gavgrif

0

Вы просто передать «идентификатор» в функции OnClick

Вы можете переписать этот код, как этот

function mostrar(enlace, id, nivel, area, trabajo) { 
    document.getElementById("btnEditar").onclick = function(idt) { 
    var area = document.getElementById("area").value; 
    var nivel = document.getElementById("nivel").value; 
    var trabajo = document.getElementById("area_de_trab").value; 
    editarRegistro(idt, area, nivel, trabajo); 
    }(id); 
} 
Смежные вопросы