2016-09-01 37 views
0

私はcodeigniterにjsonオブジェクト形式としてデータを投稿する必要があります。どのように可能にすることができます。私はJSON形式でデータをポストする必要がcodeigniterにjsonとしてデータを投稿するには?

public function signAction() 
{ 
     $name=$this->input->post('name',TRUE); 
     $dob=$this->input->post('dob',TRUE); 
     $gender=$this->input->post('gender',TRUE); 
     $country=$this->input->post('country',TRUE); 
     $city=$this->input->post('city',TRUE); 
     $mobile=$this->input->post('mobile',TRUE); 
     $email=$this->input->post('email',TRUE); 
     $password=$this->input->post('password',TRUE); 

     $this->db->select("*"); 
     $this->db->where('email',$email); 
     $this->db->or_where('mobile',$mobile); 

     $query = $this->db->get('dr_signup'); 

     $value=$query->num_rows(); 
     if($value==0) 
     { 
      $sql = "INSERT INTO dr_signup (name,dob,gender,country,city,mobile,email,password) 
       VALUES(".$this->db->escape($name).",".$this->db->escape($dob).",".$this->db->escape($gender).",".$this->db->escape($country).", 
         ".$this->db->escape($city).",".$this->db->escape($mobile).",".$this->db->escape($email).",".$this->db->escape($password).")"; 
       $value1=$this->db->query($sql); 
       $insert_id = $this->db->insert_id(); 

       $details = array(
       'status'=>'success', 
       'message'=>'registered sucessfully', 
       'id' => $insert_id , 
       'name' => $name, 
       'dob'=>$dob, 
       'gender'=>$gender, 
       'country'=>$country, 
       'city'=>$city, 
       'mobile'=>$mobile, 
       'email'=>$email, 

      ); 

       echo json_encode($details); 
     } 
     else 
     { 

      $detail = array(
      'status'=>'unsuccess', 
      'message'=>'already registered', 

    ); 

    echo json_encode($detail); 
     } 

} 

:よう 私のモデル関数に見えます。私のjsonオブジェクトは次のようになります。

{"name":"jon","dob":"1jan2015","gender":"male","country":"India","city":"Mumbai","mobile":"86064 70000","email":"[email protected]","password":"1234"} 

これは新機能です。どのように可能にすることができます。コードですべての変更を行う必要があります。事前に感謝します。

+0

どこにjsonを投稿しますか?あなたのスクリプトはすでにjsonでエンコードされた文字列をエコーし​​ています。あなたはそれが間違っているのを見ていますか? – jedifans

+0

それはAPIの開発のために、私は上記のjsonオブジェクトを$ name = $ this-> input-> post( 'name'、TRUE)の代わりに使用する必要があります。 –

+1

任意のリクエストパラメータでjsonを取得すると、jsonだけがリクエスト変数をデコードし、そのjsonキー値の配列/オブジェクトを取得します –

答えて

1

は、たとえば、あなたがこのようなコードを使用することができます$this->input->post('json_string',true);でJSONを取得すると言う..

$jsonstring = $this->input->post('json_string'); 
$json_data = json_decode($jsonstring,true); //remove true if you need object or keep it for array 

$json_data

0
...あなた $json_data['name']のようなポストされたJSON文字列のキー値を与えます

あなたはちょうどこの

return json_encode($details); 

delete your code "echo json_encode($details)" 

ようにしてみてください、私はそれが

を働いていると思います
関連する問題