我可能忽略了一些非常明显的事情,但在这一点上我投降了,需要帮助。

这是我的情况。 当页面加载时,在while循环中,PHP会使用来自服务器的数据生成一个表。 每个表格行都有一个名称列,电话等。其中一列是一个图标,单击该图标可使用户查看带有此特定线索的注释的弹出窗口。 简单的东西。

每行中的图标具有相同的类名,并且其ID是唯一的。

我有一个AJAX请求,当用户单击相关图标时,该请求应从服务器中提取注释数据并在弹出窗口中显示它。 我正在尝试使用$('。class')。click(this).attr('id'); 在我的AJAX请求中设置一个变量,其ID需要提交给我的PHP脚本。

问题:AJAX请求和返回似乎工作正常,但是无论我单击哪一行图标,它都只显示属于第一行或类名“ homelead”的第一个实例的数据。示例:我单击该行1个图标,我弹出一个带有第1行注释的弹出式窗口! 我单击任何其他行,它仅显示第一行数据:(.。通过单击一次(this)。(id)并警告属于该ID的ID,我已确认与每个行图​​标关联的ID是正确的行图标,这是正确的,只是似乎无法使用正确的ID更新JS变量。

林对此感到困惑。 任何帮助,将不胜感激。 这是我当前的代码。

HTML:

 <td>
       <img class="homelead" id="<?php echo $leadsfetch['unit_id'];?>"  
           onclick="ajax_unitnotes();" src="images/list-view.png">
  </td>
  <?php echo "</tr>"; } ?>

AJAX请求:

function ajax_unitnotes(){

    var hr = new XMLHttpRequest();
    var url = "PHP/getnotes.php";

   // this variable should update with clicked rows id before      submitting to PHP script
    var unitidnotes = $('.homelead').click(this).attr('id');     

    var vars = "unitidnotes="+unitidnotes;
    hr.open("POST", url, true);
    hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    hr.onreadystatechange = function() {
        if(hr.readyState == 4 && hr.status == 200) {
            var return_data = hr.responseText;
            document.getElementById("unitnotes").innerHTML = return_data;
        }
    }
    hr.send(vars); 
    document.getElementById("unitnotes").innerHTML = "processing...";
}

===============>>#1 票数:1 已采纳

当您在标记本身中使用onclick触发器时-在使用jQuery时通常不常见。 你可以这样做:

 <img class="homelead" id="<?php echo $leadsfetch['unit_id'];?>"  
           onclick="ajax_unitnotes($(this));" src="images/list-view.png">

而在您的功能

function ajax_unitnotes(e){

    var unitidnotes = e.attr('id');
}

您当前的代码

var unitidnotes = $('.homelead').click(this).attr('id'); 

其实不知道它的this对象,您试图访问。

更好的是,您可以使用jQuery事件,从img标签中删除onclick并产生一个类似这样的事件:

$('.homelead').click(function(){
    id = $(this).attr('id');
});

===============>>#2 票数:0

你可以通过点击的对象而this由“onclick”事件触发的功能:

onclick="ajax_unitnotes(this);"

这将使您单击的DOM对象在JS函数中可用。

您需要相应地更改功能签名:

function ajax_unitnotes(clickedElement){

然后你可以改变这个

var unitidnotes = $('.homelead').click(this).attr('id');  

var unitidnotes = clickedElement.id;

这将为您提供$leadsfetch['unit_id'] = img id的值。

  ask by Andrew Brown translate from so

未解决问题?本站智能推荐:

2回复

如何从动态ajax生成的表(PHP,JQuery,MySQL)获取ROW ID

好吧,所以我一直在做这个小项目,之前已经做过。 在表行上单击时使用jquery会提供ID /值,但不能使用php或ajax。 因此,我有点迷失了,在进行ajax查询之前,该表具有一个包含信息的预设行。 当我单击它时,一切正常,但是从下拉菜单中选择一个源之后(源是一个名称,用于搜索包含特定名
3回复

用php和ajax更新mysql表

上面的代码ajax将数据(名称,日期,电子邮件)发送到其他文件名更新。 update.php如下 但由于某些原因,更新不工作时,我添加Country_Entered = $ count`我试着调试的问题,我无法找到下的代码躺在问题 echo mysqli_error($s
1回复

通过AJAX用PHP变量更新URL

这里可能是一个简单的解决方案,我很困惑。 我有一个<select> ,它通过一个数组填充来自用户的MySQL数据库。 没问题。 我还有一个脚本,当选择了某个用户时,我可以通过AJAX将该用户的user_id设置为。 我的问题是将该用户ID放入变量$ assigned_to中,
2回复

使用AJAX在PHP文件中调用函数,该ID具有数据库中记录的特定ID以更新记录

我有以下已嵌入PHP的html代码 ... 我已经建立了以下JavaScript文件 我正在使用此php文件构建“功能”以进行数据管理 我已经对此进行了测试,并且希望它能向我显示成功消息,并且还将相应记录的“存档”值从0更改为1(或从false更改为true)。
1回复

使用jQuery,AJAX和PHP单击复选框时更新MySQL字段

单击时,我需要一个复选框将MySQL字段从1更新为0,反之亦然。 我想使用jQuery / AJAX和PHP来做到这一点,所以我不必重新加载页面。 我将代码放在下面,但无法正常工作。 我觉得我很亲近。 注意:我知道不推荐使用mysql_query 。 这是一个较旧的项目,我将尽快对
3回复

使用ID从表中删除特定行,并使用Jquery Ajax php mysql在后台刷新同一表

我建立了一个动态的html表,该表从mysql table获取数据。 我可以显示表格内容。 但是,当我试图删除第二,第三,第四等行(除第一行之外的任何行)时,我的第一行总是被删除 这是我的桌子 我正在使用jquery / ajax作为后期操作 和我的PHP代码删除行
2回复

使用ajax to php在点击时传递id名称

我正在使用Ajax制作过滤搜索系统。 我有三个不同的选项卡,用户可以按名称,类别和位置进行搜索。 当用户在搜索框中输入名称(tab-1)时,我能够进行seacrh。 在第二个选项卡中,我如何使用相同的Ajax,因此当用户单击链接时,id会在ajax脚本中传递给我的php,并且该id在我的m
2回复

在按钮上单击用用户ID更新行和列

我构建了一个清单系统,管理人员可以在其中创建产品列表,员工需要在完成产品后才能签收这些产品。 每个产品或材料在创建时都会附加到修订号。 您可以在下面看到其布局。 http://i.imgur.com/MjSc4sA.jpg 因此,当用户单击签署时,它将在此处附加其名称并更新表格。
1回复

使用ajax和php更新数据库行

我是php和jQuery的新手。 我已经在网上查询了高低价,但都无济于事。 我正在尝试“发布”使用ajax和php提交给自己的编辑表单。 我可以从ajax.php返回值回到我的表单。 将它们发布后,我也可以看到它们,但是UPDATE查询似乎不起作用。 除了从选择中获取值外,我没有将aj
2回复

jQuery / AJAX更新表上的链接/按钮单击

我有一个从MySQL填充的表,我试图通过单击按钮来更新值,但是我不确定如何从哪里开始。 我只是进入Jquery / AJAX,还没有真正弄清楚它,所以不要对我太苛刻。 在我的示例中,我有一个如下所示的HTML表: 现在,当我点击ID 3是的,与MySQL入门ID 3应更新Ye