为什么变量不更新值

时间:2018-04-03 12:46:32

标签: php html ajax

为什么我的变量$color未在<h3>中更新,因为如果我echo "$color"它显示更新的颜色,但<h3>无论如何都是相同的颜色。

的index.php

 <?php
 $color = "#29abe2";
 if ($reservationAvailable['data']['is_reservation_possible'] == true){
    $color = "#29abe2";
 }else{
    $color = "#cc00cc";
 }
 ?>
 <h3 style="color: <?php echo "$color"; ?>" id="testajax">Vul de datum, begin tijd, tijdsduur en aantal sloepen in.</h3>

的script.js

    $(document).ready(function() {

    var date = "";
    var begin = "";
    var tijdsduur = "";
    var aantal = "";


    $('#datum').change(function() {
        date = $("#datum").val();
        console.log(date);
    });
    $('#beginTijd').change(function() {
        begin = ($(this).val());
        console.log(begin);
    });
    $('#Tijdsduur').change(function() {
        tijdsduur = ($(this).val());
        console.log(tijdsduur);
    });
    $('#aantalSloepen').change(function() {
        aantal = ($(this).val());
        console.log(aantal);
        $.ajax({
            type: "POST",
            url: "index.php",
            data: {
                date: date,
                begin: begin,
                eind: tijdsduur,
                quantity: aantal
            },
            success: function(data) {
                $('#testajax').html(data);
                console.log(data);
            }
        });
    });
});

2 个答案:

答案 0 :(得分:3)

Op在评论中写道:Yes I am updateing it after an ajax call @WilliamPerron – berto

如果您想在Ajax通话后更改颜色,则应更改success部分内的颜色:

// your ajax call
success : function(response) {
    var color = "#29abe2";

    // here you do your test according to what you get 

   $("h3").css("color", color);
},
...

编辑(根据OP评论):

根据你的小提琴,这就是你所做的:

if ($reservationAvailable['data']['is_reservation_possible'] == true){  
    $color = "#29abe2";
    echo "Uw huurprijs exclusief borg: €" . $rentalPrice['data']['total'];
}else{
    $color = "#cc00cc";
    echo $reservationAvailable['data']['reason'];
}

你可以试试这个:

PHP:

// Add a result array
$result = array();

// YOUR CODE

if ($reservationAvailable['data']['is_reservation_possible'] == true){  
    $result["color"] = "#29abe2";
    $result["message"] = "Uw huurprijs exclusief borg: €" . $rentalPrice['data']['total'];
}else{
    $result["color"] = "#cc00cc";
    $result["message"] = $reservationAvailable['data']['reason'];
}

// Now return this as JSON
echo json_encode($result);

JS:

将此添加到您的Ajax调用:dataType : "json",

现在你可以这样做:

// your ajax call
success: function(data) {
    $('#testajax').html(response.message);
    $("h3").css("color", response.color);
    console.log(data);
}
...

答案 1 :(得分:0)

我觉得这里可能会有另一个CSS规则覆盖你想要使用的规则。

您可以通过以下方式使用!important

  • $color = "#29abe2 !important";
  • style="color: <?php echo "$color !important";

那,和/或您的条件语句失败。

如果是这种情况,请使用错误报告检查错误。