2016-04-27 13 views
0

私は3つのフィールドが変更されたモーダルウィンドウを開き、それらを送信してデータベースに保存することになっている次の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

のように、このコードを書き換えることができonclickの機能

に 'ID' を渡しますか?この引数の目的は何ですか?mostrarの中のnivel、area、trabajoは何ですか?document.getElementById( "btnEditar")。onclick = function(){..} – brk

+0

これは編集ボタンで呼び出され、editarRegistro()はデータを送信するajax関数ですが、これはボタンのイベントハンドラとしてeditarRegistroを置くことができない "id"変数のためにこのようにしなければなりません – Paul

答えて

0

あなたはonclickのハンドラから名前の機能を分離する必要があります。

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


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

を呼び出し、その関数で値を取得しているため、関数呼び出しで引数として渡す必要はありません。

+0

または単に 'document.getElementById(" btnEditar ").onclick = mostrar;' – Rayon

+0

@Rayonに感謝します。 – gavgrif

0

あなたはただあなたがmostrat関数を呼び出しているこの

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); 
} 
関連する問題