【问题标题】:Send data to another page using jQuery based on the which button was pressed根据按下的按钮使用 jQuery 将数据发送到另一个页面
【发布时间】:2018-05-17 04:03:49
【问题描述】:

我有以下代码:

$(document).ready(function(){
var btn = $('a.btn-primary'); 
var closeDate = $('td.closeDate');
var applyBtn = $('<input type="button" value=" Apply " class="toggleButton" \>');

//Rmove a link
btn.remove();

//Add button
applyBtn.insertAfter(closeDate);

$('.toggleButton').click(function(){
    var obj = $(this).closest('tr');
    var data = {
            vacancyID: obj.find('td.vacancyID').text(),
            closeDate: obj.find('td.closeDate').text(),
            roleLongTitle: obj.find('td.roleLongTitle').text(),
            roleRequirements: obj.find('td.roleRequirements').text(),
            roleResponsibilities: obj.find('td.roleResponsibilities').text(),
            roleQualifications: obj.find('td.roleQualifications').text(),
        }

         //Post the data to the page
         $.ajax({
             type: 'POST',
             url: 'vacancy.php',
             data: data,
             success: function(data){
                 alert(data);
             }
         });
        //$.post("vacancy.php", data, function(){
            //alert(data);
        //});
        console.log(data.vacancyID);
    })
});

在控制台中数据显示正确,但警报显示完全。我发布的页面也没有看到帖子。见下图:

我希望只看到与我点击的按钮相关的数据,而不是两个空缺。谁能帮忙告诉我们哪里出错了。

【问题讨论】:

  • 您的控制台和警报包含两个不同的值。 console.log(data.vacancyID);alert(data); 警报将打印 data 中的所有内容,而控制台仅打印 vacancyID
  • 你需要做alert(data.vacancyID);
  • 对不起,控制台日志必须是console.log(data)。控制台日志根据单击的按钮显示数据。
  • @Willem 控制台结果是什么。
  • 您需要为data: data, 使用不同的变量,因为success: function(data){url: 'vacancy.php', 的回调,您最终可能会在这里混淆。所以最好是安全的。

标签: php jquery ajax


【解决方案1】:

我找到了 2 点:

  1. 我们在输入标签的末尾没有\。请删除它。

    var applyBtn = $('&lt;input type="button" value=" Apply " class="toggleButton" \&gt;');

  2. 应用按钮应该附加到td标签中,而不是在td之后插入,因为tr包含tdthinput不是一种表格元素。

    applyBtn.insertAfter(closeDate);

不知何故,不正确的节点会影响我们的功能。

  1. 警告您的data 不是您的data 变量。这是响应数据。

success: function(data){ alert(data); }

应该是:

success: function(res){ alert(data); }

【讨论】:

  • 但我们有/ 来关闭输入标签。 source
  • @hungrykoala 我已经更新了答案,检查最后一点。 input 没有 // 反正。只是想纠正:)
  • &lt;td class="closeDate"&gt; &lt;?php //Convert the mySQL date to PHP date echo convertToDate($closeDate); ?&gt; &lt;/td&gt; &lt;td&gt; &lt;a href="apply.php?vacID=&lt;?php echo $vacancyID; ?&gt;&amp;vacDesc=&lt;?php echo $shortTitle; if($UID !== NULL){ ?&gt;&amp;UID=&lt;?php echo $UID; } if($staffID !== NULL){ ?&gt;&amp;stmem=&lt;?php echo $staffID; } ?&gt;" class="btn btn-primary" role="button"&gt;Apply&lt;/a&gt; &lt;/td&gt; &lt;/tr&gt; 这是我的按钮被插入的地方。
猜你喜欢
  • 2018-03-31
  • 2014-02-17
  • 2014-06-23
  • 2013-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-17
  • 1970-01-01
相关资源
最近更新 更多