2013-12-17 126 views
1

我想填充我的下拉列表与数据库中的数据形式,我已经尝试了以下,但没有成功,它给了我一个错误,说意外;我试过删除但仍然收到错误?从数据库中填充下拉列表

echo form::label('myproduct', 'My Product:'); 
     echo form::select('form[myproduct]', $sql = mysql_query("SELECT description FROM claim_incentive"); while ($row = mysql_fetch_array($sql)) 
      {echo "<option value=\"1\">" . $row['description'] . "</option>"; } 

我想我可以把代码放错了地方,因为我有两个PHP文件,一个是控制器,下面我的代码:

public function action_claimincentive() { 
        $this->template->content = View::factory('crm/uk/claim_incentive_form'); 
        $this->template->content->thanks = false; 
        $this->template->content->val = ''; 
        $this->template->content->post = ''; 

         if ($this->request->post('form')) { 
            $post = $this->request->post('form'); 

            $stmt = DB::query(Database::INSERT, 'INSERT INTO `claim_incentive_form_data` (`User Reference`, `Claimant Postcode`, `Purchase Order No.`, `Claimant Email Address`, `Storename`, `Storetown`, `Date of Sale`, `Date of Delivery`, `Acknowledgement No.`, `Product`) 
                     VALUES (:userreference, :claimantpostcode, :orderno, :email, :storename, :storetown, :dateofsale, :dateofdelivery, :acknowledgementno, :product)'); 
            $stmt->param(':userreference', $post['userreference']); 
            $stmt->param(':claimantpostcode', $post['claimantpostcode']); 
            $stmt->param(':orderno', $post['orderno']); 
            $stmt->param(':email', $post['email']); 
            $stmt->param(':storename', $post['storename']); 
            $stmt->param(':storetown', $post['storetown']); 
            $stmt->param(':dateofsale', $post['dateofsale']); 
            $stmt->param(':dateofdelivery', $post['dateofdelivery']); 
            $stmt->param(':acknowledgementno', $post['acknowledgementno']); 
            $stmt->param(':product', $post['product']); 
             try { 
               $stmt->execute(); 
               $this->template->content->post = $post; 
               $this->template->content->thanks = true; 
               } catch (Exception $e) { 
                FB::error($e); 
               } 

        } 
       } 

,另一个是实际的形式,请参阅下面的一部分:

echo form::label('dateofdelivery', 'Date of Delivery:'); 
     echo form::input('form[dateofdelivery]', $val, array('class'=>'input', 'id'=>'dateofdelivery')); 

     echo form::label('acknowledgementno', 'Acknowledgement No:'); 
     echo form::input('form[acknowledgementno]', $val, array('class'=>'input', 'id'=>'acknowledgementno')); 

     echo form::label('product', 'Product:'); 
     echo form::select('form[product]', array(
              '' => 'Please select from the list', 
              'In store' => 'In store', 
              'Word of mouth' => 'Word of mouth', 
              'Television' => 'Television', 
              'Newspaper' => 'Newspaper', 
              'Magazine' => 'Magazine', 
              'Internet' => 'Internet', 
              'Google Reasearch' => 'Google Reasearch', 
              'Radio' => 'Radio', 
              'Medical Recommendation' => 'Medical Recommendation', 
          ), '', array('class="select"', 'id'=>'product')); 

     echo form::submit('btnSubmit', 'Submit', array('id'=>'btnSubmit', 'class'=>'button')); 
     echo '</div>'; 
     echo '<div class="clearfix"></div>'; 

     echo form::close(); 
+0

尝试var_dumping你的结果,并确保你实际上有东西要显示。查询是否被执行?并使用mysqli或pdo而不是mysql –

回答

0

您的标记一些错误,让我们来看看:

在这一行哟u有一些错误:

echo form::select('form[myproduct]', $sql = mysql_query("SELECT description FROM claim_incentive"); 

你打开两个括号,但只有关闭一个应该是这样的:

echo form::select('form[myproduct]', $sql = mysql_query("SELECT description FROM claim_incentive")); 

这是没有必要的SQL变量分配方法中,任何方式我不不知道你在使用哪种框架,所以我只注意到语法错误。

+0

我想我可能会把代码放在错误的地方,我有两个php文件,我会更新我的问题,谢谢! –