首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要从链表中获取变量的一些值

需要从链表中获取变量的一些值
EN

Stack Overflow用户
提问于 2016-11-21 21:41:01
回答 1查看 54关注 0票数 0

我有一些页面与表单,其中加载一些数据,当我提交它后。然后它将用户链接到下一个页面。在这个页面上,我捕获来自POST的数据,我有两个下拉列表,其中第二个依赖于第一个。第一个get的值来自POST数据:

代码语言:javascript
复制
echo '<script type="text/javascript">
jQuery("#markid").val("'.$GLOBALS["i"].'"); </script>';

其中$GLOBALS"i“=来自DB的id,该数据库保留了上一页POST的数据。但它不适用于依赖于它的第二个下拉列表:

代码语言:javascript
复制
echo '<script type="text/javascript">
    jQuery("#comm").val("'.$GLOBALS["i1"].'"); </script>';

我认为它可以来自代码的一部分,它实现了对第二个下拉列表的依赖:

代码语言:javascript
复制
<script>
jQuery(function(){
var id = jQuery(".mark").val();
jQuery.ajax({ 
    type:"POST",
    url: "wp-content/com.php",
    data: {id_mark: id},
    success: function(data){
jQuery(".comm").html(data);
}
});
       jQuery(".mark").change(function(){
var id = jQuery(".mark").val();
if(id==0){
}
jQuery.ajax({
    type:"POST",
    url: "wp-content/com.php",
    data: {id_mark: id},
    success: function(data){
          jQuery(".comm").html(data);
}
});
});

其中"mark“-第一个下拉列表,"comm”-第二个。这是我问题的第一部分。第二个:我在页面上有一些值,这取决于第二个下拉列表的值。我试着:

代码语言:javascript
复制
jQuery(".comm").change(function(){
var id = jQuery(".comm").val();
if(id==0){
}
jQuery.ajax({
    type:"POST",
    url: "wp-content/pricecar.php",
    data: {id_mark: id},
    success: function(data){
          jQuery(".price9").html(data);
var price1 = jQuery(".price1").val();
var price2 = jQuery(".price2").val();
var price3 = jQuery(".price3").val();
var price4 = jQuery(".price4").val();
var price5 = jQuery(".price5").val();
var price6 = jQuery(".price6").val();
var price7 = jQuery(".price7").val();
var price8 = jQuery(".price8").val();
var price9 = jQuery(".price9").val();
jQuery.ajax({
            type:"POST",
            url: "../wp-content/price.php",
            data: {price1: price1,price2: price2,price3: price3,price4: price4,price5: price5,price6: price6,price7: price7,price8: price8, price9: data},
            success: function(data){
                jQuery(".summPrice").html(data);
            }
});
                            }
           });

但它只起作用一次,我不知道为什么。任何报价我都会很高兴的。

EN

回答 1

Stack Overflow用户

发布于 2016-11-23 16:50:54

我不能完全了解所呈现的html和ajax响应,但我可以尝试一下:

删除此行

代码语言:javascript
复制
echo '<script type="text/javascript">
jQuery("#markid").val("'.$GLOBALS["i"].'"); 
</script>';

echo '<script type="text/javascript">
    jQuery("#comm").val("'.$GLOBALS["i1"].'"); </script>';

然后在打印html的地方执行如下操作:

代码语言:javascript
复制
...
<select id="markid" data-val="<?php echo isset($GLOBALS["i"]) ? $GLOBALS["i"] : -1;?>"></select>
<select id="comm" data-val="<?php echo isset($GLOBALS["i1"]) ? $GLOBALS["i1"] : -1;?>"></select>

在你的javascript中有类似这样的东西

代码语言:javascript
复制
<script>
(function ($) {
    //when everything is ready
    $(fillUpCommOptions);
    $(watchSelectsChanges);

    function fillUpCommOptions() {
        var id = $('#markid').data('val') ? $('#markid').data('val') : $('#markid').val();
        $('#markid').removeAttr('data-val');//remove data-val, at next change event we want the select new val
        $.ajax({
            type: "POST",
            url: "wp-content/com.php",
            data: {id_mark: id},
            success: function (data) {
                //assuming data is something like
                // '<option value="niceValue">nice value</option>
                $("#comm").html(data);
                if ($("#comm").data('val')) {
                    //apply values from post also for the second dropdown
                    // assuming that data contains and option with value == $("#comm").data('val')
                    $("#comm").val($("#comm").data('val'));
                    $('#comm').removeAttr('data-val');

                    $("#comm").change()//trigger change after setting the value
                }

            }
        });
    }

    function watchSelectsChanges() {
        $('#markid')
            .off('change')//just in case, could not be needed
            .on('change', fillUpCommOptions);

        $('#comm')
            .off('change')//just in case, could not be needed
            .on('change', handleDependentValues);
    }

    function handleDependentValues() {
        var id = $("#comm").val();
        if (id) {
            $.ajax({
                type: "POST",
                url: "wp-content/pricecar.php",
                data: {id_mark: id},
                success: function (data) {
                    jQuery(".price9").html(data);
                    var price1 = jQuery(".price1").val();
                    var price2 = jQuery(".price2").val();
                    var price3 = jQuery(".price3").val();
                    var price4 = jQuery(".price4").val();
                    var price5 = jQuery(".price5").val();
                    var price6 = jQuery(".price6").val();
                    var price7 = jQuery(".price7").val();
                    var price8 = jQuery(".price8").val();
                    var price9 = jQuery(".price9").val();
                    jQuery.ajax({
                        type: "POST",
                        url: "../wp-content/price.php",
                        data: {
                            price1: price1,
                            price2: price2,
                            price3: price3,
                            price4: price4,
                            price5: price5,
                            price6: price6,
                            price7: price7,
                            price8: price8,
                            price9: data
                        },
                        success: function (data) {
                            jQuery(".summPrice").html(data);
                        }
                    });
                }
            })
        }
    }

})(jQuery);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40721620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档