2017-08-09 18 views
-1

私は更新フォームを作成しています。これで、私が更新ボタンをクリックすると、いつも同じ値が得られたので、更新機能は動作しません。私はすでに入力ボックスのID属性を使って値を取得しようとしましたが、動作しませんでした。私はこの分野では新しく、この作業には多くの時間がかかります。前もって感謝します。入力ボックスの値がすべて同じです

$(document).ready(function() {    
    $(".update").click(function() { 
    var id = $(this).data('id'); 
    var uname = $(".name1").val(); 
    var email = $(".email1").val();      

    $.post("operation.php", { 
     ID: id, 
     operation: 'update', 
     name: 'uname', 
     email: 'uemail' 
    }, function(data) { 
     $("#result").html(data);     
    });    
    }); 
}); 
for($i = 0; $i < $num_of_records; $i++) 
{ 
    echo "<tr><td>";   
    echo "<input type='text' value=".mysql_result($all_records, $i,"name")." class='name1' id='name' placeholder='Name'><input type='text' value=".mysql_result($all_records, $i,"email")." class='email1' id='email' placeholder='Email'><input type='submit' data-id=".mysql_result($all_records, $i,"id")." class='delete' name='delete' id='delete' value='Delete'><input type='submit' data-id=".mysql_result($all_records, $i,"id")." class='update' name='update' id='update' value='Update'>";echo "</td></tr>";    
} 
+3

IDは、HTML文書内で一意である__must__:そうは次のように、.siblings()関数を使用し、これを防ぐために HTML。まずそれを修正する必要があります。 – CBroe

答えて

0

Javascriptがクリックされたボタンと同じ行からの入力を選択する必要があります。

$(document).ready(function() {    
    $(".update").click(function() { 
    var row = $(this).closest("tr"); 
    var id = $(this).data('id'); 
    var uname = row.find(".name1").val(); 
    var email = row.find(".email1").val();      

    $.post("operation.php", { 
     ID: id, 
     operation: 'update', 
     name: 'uname', 
     email: 'uemail' 
    }, function(data) { 
     $("#result").html(data);     
    });    
    }); 
}); 
+0

あなたは時間を節約できます...ありがとうございました:)) – user3608987

0

より良い解決策は、あなたのコードが少しきちんとしているよう が、私はあなたに小さな例を与えている、このようにそれを行います。

<?php 
foreach($answers as $a) 
{ 
?> 
<a href="javascript:void(0)" data-answerid="<?php echo $a->id;?>" class="upvote_link" />Edit</a> 
<?php 
} 
?> 

クリック取得するためにjqueryのにOnclickあなたはthis.Youは、常にHTML要素に一意のIDを書き込む必要があります実行するすべての問題を持っている場合は、値

$('.upvote_link').click(function(){ 
var unique_id = $(this).data('answerid'); 
console.log(unique_id); 
}); 

はコメントを撃ちます。 Javascriptは、特定のリンクがクリックされたことを知っている必要があります。

0

あなたのidが同じであるため、jQueryはそのIDの最初の要素と一致するとすぐに検索を停止します。 - そうとすぐにあなたのループが無効な作成され、複数の反復を通過するよう

$(document).ready(function() {    
    $(".update").click(function() { 
    var id = $(this).data('id'); 
    var uname = $(this).siblings(".name1").val(); 
    var email = $(this).siblings(".email1").val();      

    $.post("operation.php", { 
     ID: id, 
     operation: 'update', 
     name: 'uname', 
     email: 'uemail' 
    }, function(data) { 
     $("#result").html(data);     
    });    
    }); 
}); 
+0

働いています...ありがとう – user3608987

関連する問題