Cakephp 1.3从下拉列表中获取所选值并在视图中显示

时间:2015-01-28 07:02:33

标签: cakephp cakephp-1.3

我试图从视图中的下拉列表中显示所选值,而不是在控制器中显示。 这是我的manage.ctp代码。

<div class="tab-pane" id="tab9">
      <?php echo $this->Form->create('Ticket'); ?>
                                                <label class="col-md-3 control-label">Ticket Type</label>
         <?php  echo $this->Form->input('Ticket.type', array('options'=> array( "Free"=>"FREE TIcket","Paid Ticket"=>"Paid Ticket"),'label'=>false,'class'=>'form-control select','empty'=>'Select an event type','id'=>'sample','required'=>'required')); ?>
       <br>
      <label class="col-md-3 control-label">Ticket Name</label>
      <?php echo $this->Form->input('Ticket.name',array('class'=>'form-control','id'=>'textfield','label'=>false,'placeholder'=>'Early Bird, RSVP, etc.','required'=>'required')); ?>
       <br><label class="col-md-3 control-label">Ticket Quantity</label>
       <?php echo $this->Form->input('Ticket.quantity',array('class'=>'form-control','id'=>'textfield','label'=>false,'required'=>'required')); ?>
       <br>
       <label class="col-md-3 control-label">Price</label>
       <?php echo $this->Form->input('Ticket.price',array('class'=>'form-control','id'=>'textfield','label'=>false,'required'=>'required')); ?>
       <br>
       <?php  echo $this->Form->submit(__('Add New Event', true), array('controller'=>'tickets','action'=>'add'),array('class'=>'btn btn-info active', 'style'=>'margin-bottom: 10px;','onclick'=>'GetSelectedItem()')); 
        echo $this->Form->end();
        ?> 
</div>    

这是我的javascript,但它没有用。

<script>
     function GetSelectedItem()
        {
          var e = document.getElementById("sample");
          var strSel = "The Value is: " + e.options[e.selectedIndex].value + " and text is: " + e.options[e.selectedIndex].text;
          alert(strSel);
        }
 </script>

请帮帮我。

1 个答案:

答案 0 :(得分:0)

尝试添加

var el = document.getElementById("sample");
el.addEventListener("change", GetSelectedItem, false);

到你的javascript。

修改

var div = document.getElementById("text");
var content = document.createTextNode(strSel);     
div.innerHTML = '';
div.appendChild(content);

这会将所选文字写入

<div id="text"></div>

Demo

<强>参考

.addEventListener()

.createTextNode()

.appendChild()

.innerHTML

P.S。:您的onclick-handler将无法正常工作,因为在提交表单后,页面重新加载将触发,这会中止以下javascript的执行。