2016-03-29 6 views
0

У меня есть ассоциативный массив с именем $data и функция, называемая sendToView(), которая принимает в качестве параметров $email и $vehicleid. Мне нужно назначить эти параметры массиву $data. Как я могу это сделать?Как присвоить значение ассоциативному массиву

Здесь я упомянул о том, что я пробовал, но он дает «Попытка получить свойство не объекта» Ошибка. Как я могу это решить?

public function sendToView($email, $vehicleid) {   
    $data['details'] = array(
     'email' => $email, 
     'id' => $vehicleid 
    ); 

$this->load->view('pages/OfferView',$data); 
} 

offerView.php

<?php foreach ($details as $detail) {?> 



         <form name="myform4" action="<?php echo base_url(). 'OfferCtrl/sendEmailToReview/'. $detail->email .'/'. $detail->id ;?> " method="POST"> 

Я сделал это в offerView.php.Is, что ошибка происходит из-за этого?

+0

Является ли переменная '$ data' даже внутри области действия этой функции? – Qirel

+0

в целом это нормально. где вы определяете '$ data' и где/как вы вызываете эту функцию? – mitkosoft

+0

Вы не получите это сообщение об ошибке из-за этого кода. '$ data' - это неинициализированная переменная, но PHP нежен, и из-за квадратных скобок он создает пустой массив и помещает его в' $ data' перед запуском задания. Это, однако, локальная переменная, и она исчезает, как только функция возвращается. Подробнее о [variable scope] (http://php.net/manual/en/language.variables.scope.php) в PHP. – axiac

ответ

0
public function sendToView($email, $vehicleid) {   
    $data['details'] = array(); 
    $data['details']['email'] = $email; 
    $data['details']['id'] = $vehicleid; 

$this->load->view('pages/OfferView',$data); //load it into the view 
} 

при доступе к нему, вы можете перебрать и толкать свои данные обратно в переменную т.е.

$email = $details['email']; 
$id = $details['id']; 

Затем вы можете перейти к использованию переменных $ email и $ id в вашем коде. Что-то вроде этого:

<form name="myform4" action="<?php echo base_url(). 'OfferCtrl/sendEmailToReview/'. $email .'/'. $>id ;?> " method="POST"> 
1

Когда вы просто передать массив данных может получить доступ к нему через foreach петлю, как этот

$email = $data['details']['email']; 
$id = $data['details']['id']; 
+0

Это правильно! (если данные передаются для просмотра) –

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