Можно ли отображать и скрывать кнопки в php echo внутри скрипта? - PullRequest
1 голос
/ 21 мая 2019

Моя проблема в том, что я не могу показать или скрыть кнопку, когда значение данных меняется на Delivered.

вот мой php код

<?php 
    $cardstatus = $row['cardStatus'];
    if($cardstatus == NULL){
       echo '<span class="badge badge-pill badge-warning">Card Pending</span>';
    } elseif($cardstatus == 'Delivered') {
       echo '<span class="badge badge-pill badge-success">Delivered</span>';
     //Display Done Button
       echo '<script>document.getElementById("done").style.display = "block";</script>';
    //Undisplay Close Button
       echo '<script>document.getElementById("cancel").style.display = "none";</script>';

     } else {
       echo '<span class="badge badge-pill badge-info">In Process</span>';
   }


?>

Моя кнопка ниже

//Button Cancel
    <button class="btn btn-warning btn-sm cancel" data-id="<?php echo $row['id'] ?>" data-user="<?php echo $row['user'] ?>" id="cancel">Cancel</button>

//Button Done
    <button class="btn btn-success btn-sm done" style="display: none;" id="done">Done</button>

Мой Аякс

    action: function () {
                        $.ajax({
                            type: "POST",
                            url: "accept.php",
                            data: {
                                addInfo: addInfo,
                                passInfo: passInfo,
                                id:id
                            },
                            dataType: "text",
                            success: function (data) {
                                // window.location.replace("purchased-top-up-cards.php");
                                $('#done').show(); //This will show but will be gone after refresh
                                $('#close').hide(); //This will hide but will show after refresh

                            },
                            error: function (err) {
                                console.log(err);

                            }                       
                        });
                    }

Ответы [ 2 ]

1 голос
/ 21 мая 2019

var = test ? 1 : 0 известен как Ternary Operator и приблизительно совпадает с if/then/else

. В приведенном ниже коде в качестве условия используется простой тест $cardstatus == 'Delivered'к троичному оператору, и соответствующее значение затем отображается в зависимости от значения, хранящегося в переменной.

echo ( $cardstatus == 'Delivered' ? 'block' : 'none' ) 

является более кратким эквивалентом

if( $cardstatus == 'Delivered' ) { echo 'block'; } else { echo 'none'; }

Таким образом, применяя ту же логикувстроенный в элементы HTML, но обратное block/none для кнопки отмены должно работать.

<button class="btn btn-success btn-sm done" style="display:<?php echo ( $cardstatus == 'Delivered' ? 'block' : 'none' )?>;" id="done">Done</button>

<button class="btn btn-warning btn-sm cancel" style="display:<?php echo ( $cardstatus == 'Delivered' ? 'none' : 'block' )?>;" data-id="<?php echo $row['id'] ?>" data-user="<?php echo $row['user'] ?>" id="cancel">Cancel</button>

надеюсь, это поможет ...

1 голос
/ 21 мая 2019

Слишком мало информации.Я ожидаю, что у вас есть php, который может делать следующее:

<?php 
  $cardstatus = $row['cardStatus'];
  if($cardstatus == NULL){
     echo '{ "type":"warning" , "text":"Card Pending" }';
  } elseif($cardstatus == 'Delivered') {
     echo '{ "type":"success" , "text":"Delivered" }';
   } else {
   echo '{ "type":"info" , "text":"In Process" }';
  }
?>

и на клиенте

$(function() {
  $("#someForm").on("submit",function(e) {
    e.preventDefault(); // cancel form
    $.post("accept.php",{ "addInfo": addInfo, "passInfo":"passInfo","id":id },function(res) {
      $("#someContainer").append('<span class="badge badge-pill badge-'+res.status+'>'+res.text+'</span>');
      $("#done").toggle(res.status=="success");
      $("#cancel").toggle(res.status!="success");
    });
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...