Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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
Javascript Codeigniter ajax调用无法正常工作_Javascript_Jquery_Ajax_Codeigniter - Fatal编程技术网

Javascript Codeigniter ajax调用无法正常工作

Javascript Codeigniter ajax调用无法正常工作,javascript,jquery,ajax,codeigniter,Javascript,Jquery,Ajax,Codeigniter,例如,如果我单击“向上投票”按钮,它将成功地为第一篇文章添加投票,并使用class=“rate\u vots”在span元素中显示结果,但由于以下行,它也会在具有相同类的所有span元素中显示相同的结果: $(“.rate_voces”).text(rate);// 我怎样才能避免呢? 如果我使用 $(此).text(费率);// 它将无法正常工作,因为它不知道要选择哪个跨度图元。你能帮帮我吗 以下是我的看法: <div> <?php

例如,如果我单击“向上投票”按钮,它将成功地为第一篇文章添加投票,并使用class=“rate\u vots”在span元素中显示结果,但由于以下行,它也会在具有相同类的所有span元素中显示相同的结果:

$(“.rate_voces”).text(rate);//

我怎样才能避免呢? 如果我使用

$(此).text(费率);//

它将无法正常工作,因为它不知道要选择哪个跨度图元。你能帮帮我吗

以下是我的看法:

<div>
          <?php                                      
                 foreach($results as $row){
                    $id = $row['id'];
                    $rate = $row['rate'];                   
          ?> 
   <div>
   <?php 
   $data = array(
    'name' => $id,
    'class' => 'rate',    
    'content' => 'Vote Up'
   );
   echo form_button($data);
   ?>

  <span class="rate_votes" >
  <?php echo $rate; ?>
  </span>

   </div>   

 </div> 

这与codeigniter无关:)

您将单击事件绑定到一个ID,
#rate
,但该ID会出现多次

$data=array(
'name'=>$id,
'id'=>'rate',
“内容”=>“投赞成票” ); 回显表单按钮($data)

改为使用类

选择多次出现的ID时,只会选择第一个ID,因此只有第一个按钮起作用

编辑
您的评论听起来有点奇怪,例如以下代码:
HTML:

<div class="foo">Foo</div>
<div class="foo">Foo</div>
<div class="foo">Foo</div>
<div class="foo">Foo</div>
上面的代码只删除被单击的特定div,即事件只触发一次,并且仅针对该元素


仔细检查您的javascript。

这与codeigniter无关:)

您将单击事件绑定到一个ID,
#rate
,但该ID会出现多次

$data=array(
'name'=>$id,
'id'=>'rate',
“内容”=>“投赞成票” ); 回显表单按钮($data)

改为使用类

选择多次出现的ID时,只会选择第一个ID,因此只有第一个按钮起作用

编辑
您的评论听起来有点奇怪,例如以下代码:
HTML:

<div class="foo">Foo</div>
<div class="foo">Foo</div>
<div class="foo">Foo</div>
<div class="foo">Foo</div>
上面的代码只删除被单击的特定div,即事件只触发一次,并且仅针对该元素

仔细检查您的javascript。

您使用过:

$("#rate").click(function(){...})
这里的
“#rate”
是一个
id
id
必须是唯一的,使用
class
类似
.rate
。如果页面上有多个元素具有相同的
id
,则只计算页面的第一个元素。因此,以下代码仅在id为
rate
的第一个元素上注册单击处理程序:

$("#rate").click(function(){
    //...
});
为元素指定一个类,例如:

<button class='rate'>Rate</button>
<button class='rate'>Rate</button>
您使用了:

$("#rate").click(function(){...})
这里的
“#rate”
是一个
id
id
必须是唯一的,使用
class
类似
.rate
。如果页面上有多个元素具有相同的
id
,则只计算页面的第一个元素。因此,以下代码仅在id为
rate
的第一个元素上注册单击处理程序:

$("#rate").click(function(){
    //...
});
为元素指定一个类,例如:

<button class='rate'>Rate</button>
<button class='rate'>Rate</button>

你核实了吗?尝试firebug来监视ajax调用。您验证了这一点吗?尝试firebug监视ajax调用编辑我的答案,特别是尝试更改
$('#rate').attr(“disabled”,true)
$(this).attr(“禁用”,true)
Patrick,我将id更改为class,但以下行有问题:$(“.rate_voces”).text(rate)$(“.rate”).text(“投票!”);我在你发布的代码中没有看到该ID,请阅读发布的另一个答案。你可以在我的视图中看到,我有一个span元素,用于显示投票。单击“投票”按钮后,span元素的文本会因以下行而更改:$(“.rate\u vots”).text(rate);如果我对span元素使用类,它会在具有相同类的每个帖子上显示第一篇帖子的结果。那我怎么才能避免呢?
$('.rate').text(“投票!”)
同样,您希望使用
this
而不是选择器,但是由于该行代码位于
POST
请求中,
this
与上下文无关。尝试在开始时添加另一个变量,类似于
var self=this
,然后您可以使用正确的
上下文在整个函数中引用
self
。编辑我的答案,特别是尝试更改
$(“#rate”).attr(“已禁用”,true)
$(this).attr(“禁用”,true)
Patrick,我将id更改为class,但以下行有问题:$(“.rate_voces”).text(rate)$(“.rate”).text(“投票!”);我在你发布的代码中没有看到该ID,请阅读发布的另一个答案。你可以在我的视图中看到,我有一个span元素,用于显示投票。单击“投票”按钮后,span元素的文本会因以下行而更改:$(“.rate\u vots”).text(rate);如果我对span元素使用类,它会在具有相同类的每个帖子上显示第一篇帖子的结果。那我怎么才能避免呢?
$('.rate').text(“投票!”)
同样,您希望使用
this
而不是选择器,但是由于该行代码位于
POST
请求中,
this
与上下文无关。尝试在开始时添加另一个变量,类似于
var self=this
,然后您可以使用正确的
上下文
在整个函数中引用
self