2013-12-11 4 views
0

У меня есть программа codeigniter и я хочу вставить форму в базу данных.Вставить форму в базу данных

вид Код:

<form target="paypal" method="post"> 
     <div class="field1"> 
     <div class="field"> 
      <label>Nama</label> 
      <input placeholder="Nama" name="nama" type="text"> 
     </div> 
     <div class="field"> 
      <label>No. HP</label> 
      <input placeholder="No. HP" name="handphone" type="text"> 
     </div> 
     <div class="field"> 
      <label>Alamat</label> 
      <input placeholder="alamat" name="alamat" type="text"> 
     </div> 
     <div class="field"> 
      <label>Jumlah</label> 
      <div class="selectbox"> 
       <select name="jumlah" id=""> 
       <?php for ($i=1; $i <= 20; $i++): ?> 
       <option value="<?php echo $i; ?>"><?php echo $i; ?></option> 
       <?php endfor; ?> 
      </select> 
      </div> 

     </div> 
     <button type="submit" name="submit" class="ui teal button order-button">Order now</button> 
     </div> 
    </form> 

код контроллера

function simpanOrder() 
{ 
    $this->load->model("M_order"); 
    $data['nama'] = $_POST['nama']; 
    $data['handphone'] = $_POST['handphone']; 
    $data['alamat'] = $_POST['alamat']; 
    $data['jumlah'] = $_POST['jumlah']; 


    if($this->input->post('submit')){ 
     $this->M_order->insert($data); 
    } 
} 

, когда я нажимаю отправить данные не вставить в базу данных. так что вы можете помочь мне с этой проблемой кода? Благодарю.

+2

Uhm ... im unsure, как это может работать без каких-либо SQL-запросов. –

+0

@YUNOWORK Я не говорю, что это хорошо написанный вопрос, потому что это не так, но я предполагаю, что функция вызывает '$ this-> M_order-> insert ($ data);' вызывает функцию insert в своей модели. – Ryan

+0

'isert()' в своем классе M_order, вероятно, собирается подтолкнуть его к dataabse. Трудно дать достойные ответы, угадывая, что происходит. Вам нужно будет предоставить хотя бы дополнительную информацию о классе M_order.Также вы устанавливаете $ _POST ['nama'] и т. Д., Прежде чем вы действительно проверите, было ли у вас отправленное сообщение. Если вы не делаете ошибок/уведомлений, вы должны установить свой массив $ data внутри if if(). – Viridis

ответ

0

Ваша форма не имеет действия и, следовательно, может не быть функцией, которую вы хотите. (/контроллер/функция)

<form target="paypal" method="post"> 

Кроме того, вместо того, чтобы использовать кнопку для отправки формы - попробуйте использовать <input type="submit"... Использование <button>, в некоторых браузерах, вы бы «представить», представленный, в частности, "Заказать сейчас".

Если вышеуказанное не работает - проверьте свой SQL.

В качестве примечания стороны CodeIgniter имеет вспомогательный помощник form и библиотеку form_validation, которые весьма полезны, если вы уже используете CodeIgniter. Это не исправит вашу проблему, но это то, что я чувствовал, что хотел бы указать.

См:

http://ellislab.com/codeigniter%20/user-guide/libraries/form_validation.html

http://ellislab.com/codeigniter/user-guide/helpers/form_helper.html

0

модель вызова от контроллера. и напишите ниже код в модели.

$data = array(
      'handphone' => $this->input->post('handphone'), 
      'alamat' => $this->input->post('alamat'), 
      ) 

В этом ключе массива находится имя столбца базы данных.

$this->db->insert(yourtablname, $data); 
$insert_id = $this->db->insert_id(); 
+1

Я согласен с палочкой Маулика. Я рекомендую размещать запросы в моделях. С уважением, – leyker

0

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

<form action="<?php echo site_url('controllername/simpanOrder')?>" method="post"> 

После отправки сообщения вы можете отлаживать код, как этот

$post = $this->input->post(); 
echo '<pre>'; 
print_r($post); 

Затем

if($this->input->post('submit')){ 
    $this->M_order->insert($data); 
} 

И наконец

echo $this->db->last_query(); 

Это покажет вам последний запрос.

Смежные вопросы