Javascript 使用JS获取PHP while循环中包装的输入字段的值

Javascript 使用JS获取PHP while循环中包装的输入字段的值,javascript,php,ajax,Javascript,Php,Ajax,我有一个包装在while循环中的输入框,所以我在数据库中显示ID或条目。因此,我有输入框0010020004005。。。每个输入框下面都有一个按钮 我想要什么 1当我点击按钮时,我希望JS记录相应输入框的值,例如,如果我点击输入框003下面的按钮,JS应该显示003 2我还想使用Ajax通过sendajax.php将该值发送到数据库,如果成功,它将显示一个带有消息的div 我得到了什么 无论我点击哪个按钮,我都会得到001 代码 HTML元素的id应该是唯一的;您已经为多个元素提供了相同的id,

我有一个包装在while循环中的输入框,所以我在数据库中显示ID或条目。因此,我有输入框0010020004005。。。每个输入框下面都有一个按钮

我想要什么

1当我点击按钮时,我希望JS记录相应输入框的值,例如,如果我点击输入框003下面的按钮,JS应该显示003

2我还想使用Ajax通过sendajax.php将该值发送到数据库,如果成功,它将显示一个带有消息的div

我得到了什么

无论我点击哪个按钮,我都会得到001

代码

HTML元素的id应该是唯一的;您已经为多个元素提供了相同的id,这就是为什么您的函数只获取第一个元素

不要使用一个或多个输入,只使用以下内容:

<input type="button" onclick="addCart(this.value);" value="<?= $id ?>">
编辑:应该注意的是,我尽可能避免使用内联代码,而是使用jQuery,比如

$function{ $items input.onclick,函数{ console.logthis.value; }; }; HTML元素的id应该是唯一的;您已经为多个元素提供了相同的id,这就是为什么您的函数只获取第一个元素

不要使用一个或多个输入,只使用以下内容:

<input type="button" onclick="addCart(this.value);" value="<?= $id ?>">
编辑:应该注意的是,我尽可能避免使用内联代码,而是使用jQuery,比如

$function{ $items input.onclick,函数{ console.logthis.value; }; };
关于重复ID的注释是绝对正确的,并且可能是您现有代码的唯一问题,但是我建议不要解析DOM中的值,您可以在调用该函数时将其传递给该函数,如下所示

PHP


关于重复ID的注释是绝对正确的,并且可能是您现有代码的唯一问题,但是我建议不要解析DOM中的值,您可以在调用该函数时将其传递给该函数,如下所示

PHP



不要使用具有相同id的多个元素,原因很明显。HTML中的ID在文档中必须是唯一的,否则JS将只获取它找到的具有该ID的第一个元素。您也可以将PHP中的ID作为参数添加到addCart函数中。您的和标记应该在循环之外,除非您希望每行都有一个单独的表单。还有Chris G和Magnus说的话。问题是多个元素具有相同的id…我以前从未处理过这样的问题,那么我如何处理这个多元素问题?给它们不同的id?您有来自PHP的id,只需执行id=ItemID-和id=submit-。然后按照下面的答案去做,你就完成了。不要用同一个id使用多个元素,原因很明显。HTML中的ID在文档中必须是唯一的,否则JS将只获取它找到的具有该ID的第一个元素。您也可以将PHP中的ID作为参数添加到addCart函数中。您的和标记应该在循环之外,除非您希望每行都有一个单独的表单。还有Chris G和Magnus说的话。问题是多个元素具有相同的id…我以前从未处理过这样的问题,那么我如何处理这个多元素问题?给它们不同的id?您有来自PHP的id,只需执行id=ItemID-和id=submit-。然后按照下面的答案去做,你就完成了。你还应该解决多ID问题。刚才看到了代码片段,谢谢你提供的内联代码提示。关于问题的第二部分,我如何通过ajax帖子将idString值发送到sendajax.php,以便将其发送到数据库?@staynjokede添加了获取代码以从服务器加载信息。您还应该解决多ID问题。刚刚看到了代码片段,感谢提供的内联代码提示。请回答问题的第二部分,如何通过ajax帖子将idString值发送到sendajax.php,以便将其发送到数据库?@staynjokede添加了获取代码以从服务器加载信息。这很有效!,你能再解释一点为什么和它是如何工作的吗。如果$id的值为001,则您的按钮将触发addCart'001';,将值作为参数传递给函数,而不是稍后尝试获取值。这有用吗?如果您在浏览器中打开页面并查看源代码,您将看到每个按钮在click事件处理程序代码中都有id值。我真傻,我没有注意到函数中传递的值。非常感谢。对于问题的第二部分,我如何获取该itemId并通过ajax post将值发送到sendajax.php页面我将添加一个发送数据的基本示例,但在php方面我无能为力。在我给出的示例中,您需要从查询字符串中获取php中itemId的值,然后使用该值在服务器上执行您需要的任何操作。如果出现问题,抛出异常以导致失败处理程序执行,否则
e处理程序将执行。这已成功!,你能再解释一点为什么和它是如何工作的吗。如果$id的值为001,则您的按钮将触发addCart'001';,将值作为参数传递给函数,而不是稍后尝试获取值。这有用吗?如果您在浏览器中打开页面并查看源代码,您将看到每个按钮在click事件处理程序代码中都有id值。我真傻,我没有注意到函数中传递的值。非常感谢。对于问题的第二部分,我如何获取该itemId并通过ajax post将值发送到sendajax.php页面我将添加一个发送数据的基本示例,但在php方面我无能为力。在我给出的示例中,您需要从查询字符串中获取php中itemId的值,然后使用该值在服务器上执行您需要的任何操作。如果出现问题,抛出异常以导致执行失败处理程序,否则将执行完成处理程序。
<input type="button" onclick="addCart(this.value);" value="<?= $id ?>">
function addCart(idString) {
    console.log(idString);
}
<input id="something-unique" name="something-unique" type="text" value="<?php echo $id; ?>">
<input id="submit" onclick="addCart('<?php echo $id; ?>');" type="button" value="Submit">
function addCart(itemId){
    // send the itemId to a php page...
    $.ajax({
        url: "sendajax.php?itemId=" + itemId
    })
    .done(function(data) {
        // you may want to check the value of 'data' here - if you return anything from PHP
        alert("value sent");
    })
    .fail(function() {
        alert("There was a problem sending the data");
    });
}