0

jQuery AJAX を使用してデータベースから id の値を取得するにはどうすればよいですか。

IDを渡す必要がないため、Create Newユーザーが機能していた尊重されたIDごとにユーザーを編集および削除する必要があるCRUDを作成しました。しかし、ユーザーを更新すると、ID の値が各ユーザーに対して機能しませんでした。

最初の ID のみを読み取りますが、残りのユーザーを読み取ることはできません。私はこのコードを持っています

<form method="get">
<table class="table table-bordered">
<?php 
$sqlView = mysql_query("SELECT * FROM user ORDER BY id DESC") or die (mysql_error());
while($rowView = mysql_fetch_array($sqlView)){
$id = $rowView['id'];
echo '
<tr>
    <td>
        <input type="hidden" name="id" value="'.$id.'" />
        <input type="hidden" name="name" value="'.$rowView['name'].'" />
        <input type="hidden" name="up" value="edit" />
        '.$rowView['name'].'
    </td>
    <td>'.$rowView['phone'].'</td>
    <td>'.$rowView['address'].'</td>
    <td>'.$rowView['email'].'</td>
    <td>'.$rowView['status'].'</td>
    <td><a href="#" class="update" id="'.$id.'">Update</a> Delete </td>
</tr>
';
}

?>
</table>
</form>

$('a.update').click(function(e) {
    $('<img src="images/loading.gif" id="loading" style="width:auto;" />').appendTo(".span9");
    //Cancel the link behavior
    e.preventDefault();
    //Get the A tag
    var id = $( 'input[name=id]' ).val();
    var edit = $( 'input[name=up]' ).val();
    var name = $( 'a#id' ).val();
    alert( name );
    $.ajax({
        type:"GET",
        url:"ajax/company.php",
        data: {id: id, up: edit, aid: name},
        dataType: 'html',
        target: '.span9',
        success: function(data){
            $(".span9").find('img#loading').remove();
            $(".span9").html(data);
        }
    })
}); 

ajax/company.php

<?
echo $_GET['id'];
?>

私のajaxは間違っていますか?

jQueryが各IDの値を渡すことができないのに、なぜそれがオンになっているのですか。

4

2 に答える 2

1

フィールドはすべての行で同じ名前であるため、 $( 'input[name=id]' ).val() を介してクエリを実行すると、常に最初の値が返されます。

フィールドの名前を一意の名前に変更したくない場合は、次の方法でアクセスする必要があります。

var row = $(this).parent().parent();
var id = row.find('input[name=id]' ).val();
var edit = row.find('input[name=up]' ).val();
var name = row.find('a#id' ).val();
于 2012-12-05T02:13:21.687 に答える
0

あなたも試すことができます:

  var row = $(this).parents(\"tr:first\")
  or
  var row = $(this).closest('tr');

var id = row.find('input[name=id]' ).val();
var edit = row.find('input[name=up]' ).val();
var name = row.find('a#id' ).val();
于 2014-02-15T09:02:54.853 に答える