Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用JQuery捕捉多行(购物车)中的按钮按下_Php_Jquery_Forms - Fatal编程技术网

Php 使用JQuery捕捉多行(购物车)中的按钮按下

Php 使用JQuery捕捉多行(购物车)中的按钮按下,php,jquery,forms,Php,Jquery,Forms,我正在编写一个购物车类型的功能,其中我在$(.ajax)调用中查询数据库中的大量项目(SKU、数量、名称)。我想显示一个表,其中包含所有与用户正在查找的内容相匹配的项目,并带有用户可以指定所需数量的选项。然后,他们可以单击“添加”将其选择添加到“购物车”中 下面是一个简化的示例: <table> <tr><td>Item A</td><td>SKU: 001</td><td>Qty: <input na

我正在编写一个购物车类型的功能,其中我在$(.ajax)调用中查询数据库中的大量项目(SKU、数量、名称)。我想显示一个表,其中包含所有与用户正在查找的内容相匹配的项目,并带有用户可以指定所需数量的选项。然后,他们可以单击“添加”将其选择添加到“购物车”中

下面是一个简化的示例:

<table>
  <tr><td>Item A</td><td>SKU: 001</td><td>Qty: <input name="qty-sku001"> <input type="button" value="Add"></td></tr>
  <tr><td>Item B</td><td>SKU: 002</td><td>Qty: <input name="qty-sku002"> <input type="button" value="Add"></td></tr>
  <tr><td>Item C</td><td>SKU: 003</td><td>Qty: <input name="qty-sku003"> <input type="button" value="Add"></td></tr>
</table>

项目ASKU:001数量:
项目BSKU:002数量:
项目CSKU:00300数量:
单击按钮时,从一行中获取信息的理想方式是什么? 我正在考虑向每个按钮添加一个onclick=“AddToCart(x);”,但这只是传入一个HTML表单元素对象。我是否需要使每一行都成为自己的表单,或者我可以获取按钮的父TR,然后从该行的输入和其他元素中获取值

数据最终将被附加到“Cart”div的表中,因此我需要从ajax调用中加载的三段数据。我想我可以为每一行添加隐藏元素,但必须有一个更高效、更优雅的解决方案


谢谢

假设您使用jQuery,您可以使用:

$("input[type=button]").click(function(evn){
    var rowName = $(this).prev().attr('name'); // this will give you the name attribute of element that is before the button in the DOM

    // do here whatever you need with rowName
});
编辑

您可以向按钮添加一个类,以防止对页面上的所有按钮运行此代码,如下所示:

<input class="row-button" type="button" value="Add">

$tr是一个按钮被点击的jquery行对象

有趣的是,我根本无法选择这些按钮。它们是在ajax调用的success函数中动态创建的,ajax调用是在一组jquery选项卡中进行的。我认为可能是选项卡或ajax对象的调用引起了问题,因为当我内省页面时,它们确实会出现在DOM中。我尝试了绑定click函数,如您上面所示,但该函数从未到达。您是否尝试在
成功
回调结束时绑定此函数?因为这些按钮是在ajax回调中创建的,所以绑定应该在它们的CreationTank Haynar之后调用。我会回去再试一次。在此期间,我为每个按钮添加了一个“onclick”,这很有效,但我不喜欢所有额外的代码。谢谢,Frenchi。“最近的”选择器比.parent().parent()更有用、更干净。
$(".row-button").click(function(evn){
    // the code from above
}
$("input:button").click(function(){var $tr = $(this).closest('tr');});