我希望按类创建状态,如果status = 1,则结果为text"已批准"和类"标签label-sm label-success"反之亦然。
我有这样的代码
<span class="<?php if( $row->status==0 ) {
echo 'label label-sm label-warning';
} else if ( $row->status==1 ) {
echo 'label label-sm label-info';
} else {
echo 'label label-sm label-success';
}?>">
<?php
if ( $row->status == 0 ) {
echo 'Processing';
} else if ( $row->status==1 ) {
echo 'Waiting';
} else {
echo 'Approved';
}?></span>
如果我有类似上面的代码按类更改为javascript,如何创建代码?
答案 0 :(得分:0)
很难理解你的问题,但如果你想要一个更简单的方法来创建具有正确文本和类的元素,这将有效:
<?php
$vars = $row->status==0 ? ['warning','Processing'] : ($row->status==1 ? ['info','Waiting'] : ['success','Approved']);
echo '<span class="label label-sm label-'.$vars[0].'">'.$vars[1].'</span>';
?>
答案 1 :(得分:0)
如果这是您想要的东西,请检查一下,如果正确或者您仍然需要修改,请告诉我
function myStatus(){
if ($(".status").data('status') == '0'){
$(".status").addClass('label label-sm label-warning').css({'color':'red'})
}else if($(".status").data('status') == '1'){
$(".status").addClass('label label-sm label-info').css({'color':'yellow'})
}else{
$(".status").addClass('label label-sm label-success').css({'color':'black'})
}
if ($(".statusb").data('status2') == '0'){
$(".statusb").addClass('label label-sm label-warning').css({'color':'#333'})
}else if($(".statusb").data('status2') == '1'){
$(".statusb").addClass('label label-sm label-info').css({'color':'green'})
}else{
$(".statusb").addClass('label label-sm label-success').css({'color':'orange'})
}
}
myStatus()
span{
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="status1" data-status="insert php echo here ">asd</span>
<span class="status2" data-status2="insert php echo here">asd</span>
<br>
Working Example base on status:
<span class="status" data-status="0">asd</span>
<span class="statusb" data-status2="1">asd</span>
答案 2 :(得分:-1)
首先需要一个隐藏字段来存储状态字段 第二,我想我将删除所有的if / else代码,并让JS全部handels
所以HTML代码看起来像这样
<input type='hidden' id='status' value='<?php echo $row->status?>' />
<span id='targetSpan' class=""> </span>
在js中,因为if / else可能需要多次运行,所以我将它写入函数。
当页面加载时,该函数应该运行。所以JS看起来像这样:
$('#document').ready(function() {
updateSpanClass(); //call at beginning
function updateSpanClass(){
var status = $('#status').val();
//every call of the function i class the class first
$('#targetSpan').removeClass();
if(status == 1){
$('#targetSpan').addClass('label label-sm label-info'); //update class
$('#targetSpan').html('Waiting'); //update text
} else if(status == 0) {
$('#targetSpan').addClass('label label-sm label-warning');
$('#targetSpan').html('Processing');
} else {
$('#targetSpan').addClass('label label-sm label-success');
$('#targetSpan').html('Approved');
}
}
});