2016-06-16 2 views
0
로 촬영되지

내보기 파일 : new_request.phpCodeIgniter의 - 특정 입력 폼

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 
?> 
<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>New Request</title> 
    <script type="text/javascript"> 
    window.onload = function() { 
     document.getElementById('ifYes').style.display = 'none'; 
     document.getElementById('ifNo').style.display = 'none'; 
    } 
    function yesnoCheck() { 
     if (document.getElementById('yesCheck').checked) { 
      document.getElementById('ifYes').style.display = 'block'; 
      document.getElementById('ifNo').style.display = 'none'; 
     } 
     else if(document.getElementById('noCheck').checked) { 
      document.getElementById('ifNo').style.display = 'block'; 
      document.getElementById('ifYes').style.display = 'none'; 
     } 
    } 

    </script> 

</head> 
<body> 
    <h3>Make a new Request!</h3> 

    <?php 
     echo form_open('requests/new_function'); 
     echo validation_errors(); 
     echo form_label('Service : ', 'service[]'); 
     $options = array(
      'facial' => 'Facial', 
      'threading' => 'Threading', 
      'spa' => 'Spa', 
      'service' => 'Service' 
      ); 
     echo "<br>"; 
     echo form_multiselect('service[]', $options); 
     echo "<br>"; 
     echo form_label('Time(hh:mm:ss) : ', 'time'); 
     echo form_input('time', ''); 
     echo "<br>"; 
     echo form_label('Date(dd-mm-yyyy) : ', 'date'); 
     echo form_input('date', ''); 
     echo "<br>"; 

     echo form_label('Address : ', 'address'); 
     ?> 
     My Address 
     <input type="radio" onclick="javascript:yesnoCheck();" name="yesno" id="yesCheck"/> 
     New Address 
     <input type="radio" onclick="javascript:yesnoCheck();" name="yesno" id="noCheck"/> 
     <br> 
     <div id="ifYes" style="display:none"> 
      <?php 
      echo form_label('Street : ', 'street'); 
      echo form_input('street', $street); 
      echo "<br>"; 
      echo form_label('City : ', 'city'); 
      echo form_input('city', $city); 
      echo "<br>"; 
      echo form_label('State : ', 'state'); 
      echo form_input('state', $state); 
      echo "<br>"; 
      echo form_label('PinCode : ', 'pincode'); 
      echo form_input('pincode', $pincode); 
      echo "<br>"; 
      ?> 
     </div> 

     <div id="ifNo" style="display:none"> 
      <?php 
      echo form_label('Street : ', 'street'); 
      echo form_input('street', ''); 
      echo "<br>"; 
      echo form_label('City : ', 'city'); 
      echo form_input('city', ''); 
      echo "<br>"; 
      echo form_label('State : ', 'state'); 
      echo form_input('state', ''); 
      echo "<br>"; 
      echo form_label('PinCode : ', 'pincode'); 
      echo form_input('pincode', ''); 
      echo "<br>"; 
      ?> 
     </div> 

     <?php 



     echo "<br>"; 
     //adding CAPTCHA 
      $random_number = substr(number_format(time() * rand(),0,'',''),0,6); 
      $vals = array(
       'word' => $random_number, 
       'img_path' => './captcha/', 
       'img_url' => base_url().'captcha/', 
       'img_width' => 140, 
       'img_height' => 32, 
       'expiration' => 7200 
       ); 
      $cap = create_captcha($vals); 
      echo $cap['image']; 
      ?> 
      <br> 
      <?php 
      $this->session->set_userdata('captchaWord', $cap['word']); 
      echo form_label('Please fill in the string above : ', 'captcha'); 
      echo form_input('captcha', ''); 
      echo "<br>"; 
     echo form_submit('submit-button-request', 'Submit Request'); 
     echo form_close(); 
    ?> 


</body> 
</html> 

문제는 $ this-> 입력 -> 포스트 ('거리')와 '도시'비슷 ' 상태 ','핀 코드 '가 작동하지 않습니다. 빈 필드를 반환합니다. 'ifYes'div는 데이터베이스에서 미리 채워집니다. 여기

컨트롤러 파일입니다 Requests.php

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Requests extends CI_Controller { 

    public function new_req() 
    { 
     $this->load->model('model_users'); 
     $object = $this->model_users->getRow($this->session->userdata('email')); 
     //var_dump($object);die(); 
     $data['street'] = $object[0]->street; 
     $data['city'] = $object[0]->city; 
     $data['state'] = $object[0]->state; 
     $data['pincode'] = $object[0]->pincode; 
     $this->load->view('new_request', $data); 
    } 

    public function new_function() 
    { 
     $this->form_validation->set_rules('service[]', 'Service', 'required'); 
     // $this->form_validation->set_rules('street', 'Street', 'required'); 
     // $this->form_validation->set_rules('city', 'City', 'required'); 
     // $this->form_validation->set_rules('state', 'State', 'required'); 
     // $this->form_validation->set_rules('pincode', 'Pincode', 'required'); 
     $this->form_validation->set_rules('time', 'Time', 'required|regex_match[/^[0-9]{2}:[0-9]{2}:[0-9]{2}$/]'); 
     $this->form_validation->set_rules('date', 'Date', 'required|regex_match[/^[0-9]{2}-[0-9]{2}-[0-9]{4}$/]'); 
     $this->form_validation->set_rules('captcha', 'Captcha', 'required|callback_checkCaptcha'); 
     $date = $this->input->post('date'); 
     $time = $this->input->post('time'); 
     $date_time = nice_date($date, 'Y-m-d') . " " . $time; 
     $service = implode(',' , $this->input->post('service[]')); 
     $data = array(
      'email_customer' => $this->session->userdata('email'), 
      'service' => $service, 
      'date_time' => $date_time, 
      'street' => $this->input->post('street'), 
      'city' => $this->input->post('city'), 
      'state' => $this->input->post('state'), 
      'pincode' => $this->input->post('pincode'), 
      ); 
     $this->load->model('model_users'); 

     if($this->form_validation->run() == FALSE) 
     { 
      $this->load->view('new_request'); 
     } 
     else 
     { 
      $this->model_users->insert_request($data); 
      redirect('main/members'); 
     } 

    } 

    public function old_req() 
    { 

    } 

    public function checkCaptcha($captcha) 
    { 
     if($this->session->userdata('captchaWord') == $captcha) 
     { 
      return true; 
     } 
     else 
     { 
      $this->form_validation->set_message('checkCaptcha', 'Please fill in the Captcha String Correctly!'); 
      return false; 
     } 
    } 

} 

답변

1

문제는 필드 이름을 반복하는 것입니다. 양식이 제출되면 두 번 지명 된 필드 중 마지막 필드가 게시됩니다. 다른 말로하면 'isNo'사업부 만이 서버에 수락되어 $ _POST를 넣습니다.

이 솔루션은

+0

매우 감사 등 "new_"즉 new_street, new_city으로 'ISNO'사업부의 앞에 추가 모든 필드 이름을 하나 개의 필드 세트 또는 다른, 즉 이름을 변경합니다! –