以下代码位于我的php文件(cl.php)中:
<?php for( $i = 0; $i < count( $getClFormData->data ); $i++ ) :?>
<tr>
<input type='hidden' name='itemid[]' value='<?php echo $getClFormData->data[$i]['c_item_id'] ?>'>
<td><?php echo $getClFormData->data[$i]['item'] ?></td>
<td><?php echo $getClFormData->data[$i]['description'] ?></td>
<td><?php echo $getClFormData->data[$i]['norm'] ?></td>
<td>
<input type='radio' name='kforce_mont1_<?php echo $i ?>' value='1' class='bobtailradiook'>OK<br/>
<input type='radio' name='kforce_mont1_<?php echo $i ?>' value='0' class='bobtailradionok' alt='<?php echo $getClFormData->data[$i]['c_item_id'] ?>'>NOK
</td>
</tr>
<?php endfor;
其中<input type='radio' name='kforce_mont1_<?php echo $i ?>' value='0' class='bobtailradionok' alt='<?php echo $getClFormData->data[$i]['c_item_id'] ?>'>NOK
与我的问题相关。
进一步向下cl.php,以下代码:
if(isset($_POST['itemid'])){
<input type='hidden' class='test' value='<?php echo $_POST['itemid']; ?>'>
}
JS代码
$( document ).ready(function() {
$('.bobtailradionok').each(function() {
$( this ).click(function() {
//$("#errortable").show();
//alert($(this).attr('alt'));
$.ajax({
type: 'POST',
data: {itemid: $(this).attr('alt')},
url: "cl.php",
success:function(data){
alert($('.test').val());
console.log(data);
}
});
});
});
});
上面的jquery返回&#39; undefined&#39;在警告框中,我希望它返回itemid。为什么&#39;未定义&#39;回?因为<input type='hidden' class='test' value='<?php echo $_POST['itemid']; ?>'>
正确地返回<input type='hidden' class='test' value='1'>
或<input type='hidden' class='test' value='2'>
,具体取决于点击的框,当我查看console.log时。
答案 0 :(得分:1)
您在哪里将AJAX响应添加到页面?
这向您展示了回复中的内容:
console.log(data)
但此正在页面上寻找class="test"
元素:
$('.test').val()
您的意思是先将响应添加到页面的某个位置吗?例如:
$('#someElement').append(data);
alert($('.test').val());
或者也许是专门查看值的响应?:
$('.test', data).val()
或:
$(data).find('.test').val()
基本上,您只是在错误的地方寻找class="test"
元素。