Javascript jQuery php变量问题

Javascript jQuery php变量问题,javascript,php,jquery,Javascript,Php,Jquery,我试图在这个jQuery函数中捕获正确的变量,但是无论我单击什么按钮,警报都会显示我拥有的第一个标签的名称。有什么想法吗?多谢各位 <html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script> <script type="text/javascript"&g

我试图在这个jQuery函数中捕获正确的变量,但是无论我单击什么按钮,警报都会显示我拥有的第一个标签的名称。有什么想法吗?多谢各位

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/javascript">
$( document ).ready(function() {
    $(".submit").click(function() {
    var name = $("#name").val();
    alert(name);
    });
    });
</script>
</head>

<body>
<?php
include("connection.php"); 
$link=connect(); 
$result=mysql_query("select * from names",$link);

if (mysql_fetch_array($result) == 0)
{
    echo "No names registered. Add one";
}
else
{
    while($row=mysql_fetch_array($result))
    {
        echo "<html>
        <label>".$row["name"]."</label>
        <input type='button' class='submit' value='Delete'>
        <input type='hidden' id='name' value=".$row["name"].">
        <br>
        </html>";     
    }

    mysql_free_result($result);
    mysql_close($link);
}
?>  
</body>
</html>

$(文档).ready(函数(){
$(“.submit”)。单击(函数(){
var name=$(“#name”).val();
警报(名称);
});
});

使用DOM导航从相邻输入获取值:

$( document ).ready(function() {
    $(".submit").click(function() {
        var name = $(this).next().val();
        alert(name);
    });
});

此外,页面中应该只有一个
块。不要把它放在循环中。

首先,html ID应该是唯一的

尝试使用html5数据属性并删除隐藏的表单元素:

while($row=mysql_fetch_array($result))
{
    echo "<input type='button' class='submit' value='Delete' data-value=".$row["name"].">";     
}
while($row=mysql\u fetch\u array($result))
{
回声“;
}
和JS部分:

<script type="text/javascript">
    $( document ).ready(function() {
       $(".submit").click(function() {         
           alert($(this).data('value'));
       });
    });

$(文档).ready(函数(){
$(“.submit”)。单击(函数(){
警报($(this.data('value'));
});
});

您多次使用同一id-
名称

while($row=mysql_fetch_array($result))
{
    echo "<html>
    <label>".$row["name"]."</label>
    <input type='button' class='submit' value='Delete'>
    <input type='hidden' id='name' value=".$row["name"].">
    <br>
    </html>";     
}
这将使您的表单在没有javascript的情况下也可以工作

然后,在javascript中,您可以执行以下操作:

$(".submit").click(function(e) {
  e.preventDefault();
  var name = $(this).closest('form').find('input[name="name"]').val();
  ...
或者如果以后需要使用ajax发布:

var data = $(this).closest('form').serialize();

(或者您捕获表单的
submit
事件)

除了一些其他答案之外,您实际上不需要隐藏的输入。只需将按钮输入更改为:

<input type='button' class='submit' name='".$row["name"]."' value='Delete'>

身份证必须是unique@cmorrisey是的,我想用AJAX删除项目,但目前我只需要在每种情况下捕获正确的变量。
<input type='button' class='submit' name='".$row["name"]."' value='Delete'>
var name = $(this).attr('name');