数据集的未定义值

时间:2018-03-12 10:55:34

标签: jquery ajax

我尝试使用JQuery获得数据集的价值,但它返回未定义的值,我不知道原因:

<option class="option" 
        value="<?php echo $art["id_art"]; ?>"
        data-unite="<?php echo $art["unite_lib"]; ?>" 
        data-qte="<?php echo $art["art_solde"]; ?>"
        data-perissables="<?php echo $art["perissable"]; ?>">
    <?php echo $art["lib_art"]. " périssable : ".$art["perissable"]; ?>
</option>

和JS:

var id = $(this).find("option").val()
var qte = $(`option[value=${id}]`).data("qte");
var perissable = $(`option[value=${id}]`).attr("data-perissables")
console.log(perissable);

3 个答案:

答案 0 :(得分:0)

我测试了你的所有建议,也许我没有问我的问题  事实上,selectbox的数据来自我的数据库,对于每个值,我都试着拥有“perissable”的值。

<?php foreach($articles as $art): ?>
                                                        <?php if($art["id_type_art"] == "1"): ?>
                                                             <?php  if(!in_array($art["id_art"],$tab) ):    ?>
                                                                <option class="option" value="<?php echo $art["id_art"]; ?>" data-unite="<?php echo $art["unite_lib"]; ?>" data-qte="<?php echo $art["art_solde"]; ?>" data-perissables="<?php echo $art["perissable"]; ?>"><?php echo $art["lib_art"]; ?></option>
                                                                <?php $tab[]= $art["id_art"] ; ?>
                                                             <?php endif ?>

                                                        <?php endif ?>

                                                <?php endforeach; ?>

答案 1 :(得分:0)

我测试了你的jqyery代码,在这一行:

var id = $(this).find("option").val()

结果(id)为undefined。但我将$(this)更改为$('body')并且有效。在您的代码中$(this)等于window。将您的第一个jquery行更改为:

var id = $('body').find("option").val()

更新

如果您的代码是关于选择框更改或点击事件,您可以轻松完成此操作:

var qte = $(this).data("qte");
var perissable = $(this).attr("data-perissables")

答案 2 :(得分:0)

我看到了导致问题的原因。事实上,数据表的分页选项存在混淆。所以我继续这样做以正确地定位元素。

$("#select-articles").on("change", function(e){
                var id = $(this).val()
                var qte = $(`option[value=${id}]`).data("qte");
                var perissable = $(this).find(`option[value=${id}]`).data("perissable");
                var url = '<?php echo base_url("index.php/Articles/get_cout_date_exp/"); ?>'})