使用Javascript通过按钮从表行提交数据

使用Javascript通过按钮从表行提交数据,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有一个动态记录列表,显示在一个表中,每行有两个按钮,一个按钮将用户带到页面查看/编辑数据,另一个按钮用于删除行项目 我想弄明白的是,当选择了其中一个按钮时,如何创建javascript来仅为该行提取lead_id隐藏值 我了解如何使用js从命名元素的单个结果中提取值,只是在理解如何从单击按钮的行中检索单个结果时遇到问题 以下是HTML: <table id="lead_list" width="100%"> <th> <tr>

我有一个动态记录列表,显示在一个表中,每行有两个按钮,一个按钮将用户带到页面查看/编辑数据,另一个按钮用于删除行项目

我想弄明白的是,当选择了其中一个按钮时,如何创建javascript来仅为该行提取lead_id隐藏值

我了解如何使用js从命名元素的单个结果中提取值,只是在理解如何从单击按钮的行中检索单个结果时遇到问题

以下是HTML:

<table id="lead_list" width="100%">

        <th>
    <tr>
        <td><strong>Date</strong></td>
        <td><strong>First Name</strong></td>
        <td><strong>Last Name</strong></td>
        <td><strong>Email</strong></td>
        <td><strong>Company</strong></td>
        <td><strong>Lead Status</strong></td>
        <td><strong>Actions</strong></td>
    </tr>
        </th>
    <tr>
        <td>2014-03-06</td>
        <td>Bob</td>
        <td>Wilson</td>
        <td><a href="mailto:test@test.com">test@test.com</a></td>
        <td>MyFunLIFE</td>
        <td>Subscribed</td>
        <td><input type="hidden" name="lead_id" value="379" />
            <input type="button" class="view-edit-lead" value="View/Edit" />
            <input type="button" class="delete-lead" value="Delete" /></td>
    </tr>
    <tr>
        <td>2014-03-06</td>
        <td>Tom</td>
        <td>Shuemate</td>
        <td><a href="mailto:test@test.com">test@test.com</a></td>
        <td>MyFunLIFE</td>
        <td>Subscribed</td>
        <td><input type="hidden" name="lead_id" value="377" />
            <input type="button" class="view-edit-lead" value="View/Edit" />
            <input type="button" class="delete-lead" value="Delete" /></td>
    </tr>
    <tr>
        <td>2014-03-06</td>
        <td>Biggie</td>
        <td>Smalls</td>
        <td><a href="mailto:test@test.com">test@test.com</a></td>
        <td>MyFunLIFE</td>
        <td>Subscribed</td>
        <td><input type="hidden" name="lead_id" value="376" />
            <input type="button" class="view-edit-lead" value="View/Edit" />
            <input type="button" class="delete-lead" value="Delete" /></td>
    </tr>
</table>

日期
名字
姓氏
电子邮件
公司
潜在客户状态
行动
2014-03-06
上下快速移动
威尔逊
我的快乐生活
订阅
2014-03-06
汤姆
舒梅特
我的快乐生活
订阅
2014-03-06
大人物
斯莫尔斯
我的快乐生活
订阅
以下是我目前使用的js:

$('td.wplp-inputs input').click(function(){ 

// Don't allow access to the page while we process data.
$.blockUI({ 

    message: '<h1>Just a moment</h1><br /><br />Lead is being deleted...', 
    css: { 
        top:  ($(window).height() - 400) /2 + 'px', 
        left: ($(window).width() - 400) /2 + 'px', 
        width: '400px',
        Height: '250px', 
        padding: '10px'
    } 

    });     


// if the button class is
if( $(this).is('.delete-lead') ) {
    /// delete
    data = new Object();
    data.lead_id = $(this).siblings('input[type="hidden"]').val();

    alert(JSON.stringify(data));          

    data.action = "delete_lead"; //the action to call
    data._ajax_nonce = wplpajaxobjfront.nonce; // This is the name of the nonce setup in the localize_script
    data.ajaxUsed = "yes";

    // Define the URL for the AJAX to call
    var url = wplpajaxobjfront.ajaxurl; 

    //alert( JSON.stringify( data ) );
    //alert( JSON.stringify( url ) );

    $.post(url, data, function(response) {

        alert(response);
        window.location.reload();
        //window.location.href = response;
        $.unblockUI();
        //window.open(response,"_blank","","");

    });

} else {
    /// edit/view

    alert(reponse);

}

return false;   //Do not remove!
$('td.wplp-input')。单击(函数(){
//处理数据时不允许访问该页面。
$.blockUI({
消息:“请稍候,

正在删除潜在客户…”, css:{ 顶部:($(窗口).height()-400)/2+'px', 左:($(窗口).width()-400)/2+'px', 宽度:“400px”, 高度:'250px', 填充:“10px” } }); //如果按钮类是 如果($(this).is('.delete lead')){ ///删除 数据=新对象(); data.lead_id=$(this).sibbines('input[type=“hidden”]”)val(); 警报(JSON.stringify(数据)); data.action=“delete_lead”;//要调用的操作 data.\u ajax\u nonce=wplajaxobjfront.nonce;//这是本地化脚本中nonce设置的名称 data.ajaxUsed=“是”; //定义要调用的AJAX的URL var url=wplajaxobjfront.ajaxurl; //警报(JSON.stringify(数据)); //警报(JSON.stringify(url)); $.post(url、数据、函数(响应){ 警报(响应); window.location.reload(); //window.location.href=响应; $.unbui(); //打开(响应为“空白”、“空白”、“空白”); }); }否则{ ///编辑/查看 警惕(反应); } return false;//不删除!
}))

一旦我有了只从一个要提交的表行中获取数据的方法,特别是lead_id,我就可以毫无疑问地将它传递给我的PHP函数

js的问题还在于不允许将其他值传递到var数据中,当前从ajax调用返回的唯一项是lead_id,其中不包括输入名称,data.action、data.ajaxUsed和data.ajax_nonce等也是如此


提前感谢您对此提供的任何帮助。

单击按钮时,可以通过以下简单方法获取每行的
lead\u id

$('td input').click(function(){
  var el = $(this).siblings('input[type="hidden"]');

  // to get input name  
  var data = {};    /// create new object
  data[el.attr('name')] = el.val() ; // lead_id to data
  data['action'] = 'delete_lead';    // add action to data
  console.log(data);                 // log data to check, open your console and see data

  if( $(this).is('.delete-lead') ) {
       /// delete
  } else {
       /// edit/view
  }
});

这可以很好地获取值,但是它不会返回文章中隐藏值的名称。如何将lead_id放入发送到php脚本的post数据中?我将用当前的js编辑我的问题。@RickWeston再次检查答案,
data.lead_id
返回输入值如果我提醒(数据)我只得到id,即“379”等。我试图将数据发布到由操作调用的php脚本中。通常我会得到类似{“lead_id”:“379”,“action”:“delete_lead”}这样的值。然后在由action调用的php脚本中,我会将$_POST的$_POST值,$_POST['lead_id']作为要删除的lead。但是,“数据”不包含除lead_id值以外的任何内容。数据=新对象();data.lead_id=$(this).sibbines('input[type=“hidden”]”)val();用上面的代码修改代码会得到我想要的post数据,但它不会为我的PHP函数调用我的操作。