undefined在alertbox jquery ajax中返回

时间:2018-04-25 11:59:36

标签: php jquery ajax

以下代码位于我的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时。

1 个答案:

答案 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"元素。