我在foreach循环中创建了一些输入字段:
<?php foreach($this->results as $value){?>
<td><a href="$" class="buttonDetails">View Detail</a>
<input name="processor" id="processor" type="text" value="<?php echo $value['processor']; ?>">
<input name="auth_code" class="auth_code" type="hidden" value="<?php echo $value['auth_code']; ?>"></td>
<? } ?>
会给我一些类似的东西:
<td>
<a href="$" class="buttonDetails">View Detail</a>
<input name="processor" class="processor" type="text" value="19">
<input name="auth_code" class="auth_code" type="text" value="4">
</td>
<td>
<a href="$" class="buttonDetails">View Detail</a>
<input name="processor" class="processor" type="text" value="9">
<input name="auth_code" class="auth_code" type="text" value="11">
</td>
...
然后我尝试获取值:
$('.buttonDetails').live("click", function (){
var processor = $('.processor').val();
alert(processor);
$.ajax({
type: 'POST',
dataType: 'json',
url: '/decline/list',
async: false,
data: {
processor: processor,
processor: auth_code
},
success: function(json) {
$('#details').html(json.processor);
}
});
return false;
});
我遇到的问题是,当我点击任何链接时,我的提醒会获得相同的号码(通常是第一个输入的第一个值)。
任何想法都要解决这个问题?我已经尝试了带有id的“替换”类和“实时”的“点击”,但仍然没有
编辑:
我相信我需要区分这些类,所以他的链接会知道要拉什么值。??
编辑:如果我想获得'auth_code'怎么办?
答案 0 :(得分:4)
尝试:
$('.buttonDetails').live("click", function (){
var processor = $(this).next(".processor").val();
alert(processor);
/* snip */
});
使用next
获取所点击链接旁边的输入。
更新(由于评论)。
您可以使用nextAll
代替auth_code
找到var auth_code = $(this).nextAll(".auth_code").val();
:
processor
另外,您确定要为AJAX通话提供正确的值吗?看起来您要指定processor
两次。为{{1}}指定的第一个值将被覆盖。
答案 1 :(得分:1)
如果您只想要下一个项目,可以使用jquery next()
$('.buttonDetails').live("click", function (){
var processor = $(this).next().val();
alert(processor);
return false;
});
这是一个小提琴
答案 2 :(得分:1)
data: {
processor: processor,
processor: auth_code
},
'auth_code'行将覆盖'处理器'行,实际上是
data: {
processor: auth_code
},
只。在关联数组/对象中,不能有一个具有两个不同值的键。要向PHP提交同名字段,请使用其fieldname[]
表示法,告诉PHP将该特定表单字段视为数组。
<input name="processor[]" ...>
<input name="processor[]" ...>
并通过
将数据传递给JQuerydata : $(this).serialize()
答案 3 :(得分:1)
使用Jquery .next(),它应该为您提供下一个元素
答案 4 :(得分:0)
无论因为这一行而点击了哪个锚标记,都会获得相同的值:
var processor = $('.processor').val();
您正在整个DOM中搜索具有类'processor'的所有元素,它返回每个输入,然后.val()将返回FIRST匹配的值(第一个输入)。
请改为尝试:
var processor = $(this).next('.processor').val();
答案 5 :(得分:0)
您需要做的就是从他们点击的元素中获取值。使用Jquery&#39;这个&#39;关键字应该可以解决您的问题。
$('.buttonDetails').live("click", function (){
var processor = $(this).next().val();
alert(processor);
&#39; this&#39;将选择&#39; a&#39;他们点击了,然后接下来将迭代到下一个兄弟,在这种情况下你的输入,并且val像以前一样检索那个值。