为什么我的变量$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);
}
});
});
});
答案 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";
那,和/或您的条件语句失败。
如果是这种情况,请使用错误报告检查错误。