Если elseif elseif логика с html и php кодом, условие elseif не выполняется

0

У меня есть код с некоторой ситуацией, чтобы сначала проверить, тогда код должен выполняться в соответствии с ним. мой код

<?php if($this->Session->read('Auth.User.id')==''){ ?>
  <input class="profilebtn" type="button" style="width:100px !important; margin-top: 1px;" value="Start now" onclick="javascript:register_popup();">
  <input class="profilebtn" type="button" style="width:100px !important; margin-top: 1px;" value="Start now" onclick="javascript:submitPlan(2);">
  <input class="profilebtn" type="button" style="width:100px !important; margin-top: 1px;" value="Start now" onclick="javascript:submitPlan(3);">
<?php } elseif($this->Session->read('Auth.User.id')!='' && $this->Session->read('Auth.User.role_id')=='3' && isset($this->data['User']['plan_type']) && $this->data['User']['plan_type']=='A'){ ?>
   <input class="profilebtn" type="button" style="width:100px !important; margin-top: 1px;" value="Your plan" onclick="javascript:register_popup();">
   <input class="profilebtn" type="button" style="width:100px !important; margin-top: 1px;" value="Start now" onclick="javascript:submitPlan(2);">
   <input class="profilebtn" type="button" style="width:100px !important; margin-top: 1px;" value="Start now" onclick="javascript:submitPlan(3);">
<?php } elseif($this->Session->read('Auth.User.id')!='' && $this->Session->read('Auth.User.role_id')=='3' && $this->data['User']['plan_type']=='B'){ ?>
   <input class="profilebtn" type="button" style="width:100px !important; margin-top: 1px;" value="Start now" onclick="javascript:register_popup();">
   <input class="profilebtn" type="button" style="width:100px !important; margin-top: 1px;" value="Your plan " onclick="javascript:submitPlan(2);">
   <input class="profilebtn" type="button" style="width:100px !important; margin-top: 1px;" value="Start now" onclick="javascript:submitPlan(3);">
<?php } else{?>  
   <input class="profilebtn" type="button" style="width:100px !important; margin-top: 1px;" value="Start now" onclick="javascript:register_popup();">
   <input class="profilebtn" type="button" style="width:100px !important; margin-top: 1px;" value="Start now" onclick="javascript:submitPlan(2);">
   <input class="profilebtn" type="button" style="width:100px !important; margin-top: 1px;" value="Your plan" onclick="javascript:submitPlan(3);">
<?php } ?>

Таким образом, у меня есть 3 кнопки в каждом условии, поэтому в соответствии с уже запланированным пользователем. Я хочу изменить значение кнопки от начала до вашего плана и отдыха. 2 кнопка должна начинаться теперь с опциона. Таким образом, в этом коде происходит то, что происходит при его проверке, если условие не соответствует, а затем напрямую переходит к выполнению else, не проверяя else, если часть, которую я хочу проверить в первую очередь.

  • 0
    var_dump($this->data['User']['plan_type']); что ты видишь?
  • 0
    Просто так сказано: вы могли бы установить текст кнопки в небольшом количестве кода до этого, и у вас не было бы только одного набора кнопок, таких как <input type="button" value="<?= $button_text['A'] ?>" onclick="register_popup()"> и т. д. (Кстати, эти встроенные стили могут быть лучше в качестве #containerId input.profilebtn в CSS. И вам не нужен javascript: в атрибутах onclick.)
Теги:
cakephp-1.3

2 ответа

0

Иглифы будут выполняться, только если значения удовлетворяют всем условиям. Если они не выполняются, то по крайней мере одно из условий не выполняется.

Например, можете ли вы точно сказать, что переменные здесь:

$this->Session->read('Auth.User.id')!=''
&& $this->Session->read('Auth.User.role_id')=='3'
&& $this->data['User']['plan_type']=='B')

все так, как вы ожидаете?

0

Попробуйте сделать другое elseif с (true) как условие. Таким образом, вы можете проверить, работает ли elseif. Если это вскочит на это, что-то не так с обоими условиями.

Вручную проверьте переменные с чем-то вроде

var_dump($this->Session->read('Auth.User.role_id')=='3');

и проверьте, соответствует ли результат, как вы планируете в условиях.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню