Member 12213239 Ответов: 0

Автозаполнение полей данных и сохранение данных в массиве в cakephp 2.5.1


Я новичок в CakePHP. У меня есть приложение CakePHP, которое имеет таблицу улиц (со столбцами street_name, house_no, district, city). Мне нужно автоматически заполнить эти данные в форме и сохранить их в массиве для дальнейшей обработки данных. Это должно быть похоже на то, что пользователь будет вводить название улицы в поле Название улицы формы, которая имеет поля - Название улицы, номер дома, район и город. После выбора названия улицы из автоматических предложений соответствующие данные (номер дома, район и город) будут заполнены в других полях формы.

Что я уже пробовал:

Теперь более 25000 строк загружаются в таблицу улиц, которая представляет собой всю базу данных улиц города. эта таблица не связана с другими таблицами приложения через внешние ключи. Уличная модель в /Model/Street.php это следующее:

class Street extends AppModel {

  public function getStreet ($term = null) {
    if(!empty($term)) {
      $streets = $this->find('list', array(
        'conditions' => array(
          'street_name LIKE' => trim($term) . '%'
        )
      ));
      return $streets;
    }
    return false;
  }
}


В /Controller/StreetsController.php,

class StreetsController extends AppController {

   public function autocomplete($term){

   if ($this->request->is('get')) {
       $this->autoRender = false;
       $data = $this->Street->getStreet($term);
       $this->set(compact('data'));
       $this->set('_serialize', array('data'));

       echo json_encode($data);
       }
   }
 }


В /webroot/js/street.js файл,

(function($) {
  $('#autocomplete').autocomplete({
        source: "/street.json"
  });
})(jQuery);


Входные формы находятся в разных контроллерах. В вид/пользователи/добавить.файл CTP ,

<fieldset>
        <legend><?php echo __('Address Data'); ?></legend>

        echo $this->Form->input('street_name', array(
                   'class' => 'ui-autocomplete',
                   'id' => 'autocomplete'));
        echo $this->Form->input('house_no');
        echo $this->Form->input('district');
        echo $this->Form->input('city');

  </fieldset>
  <?php echo $this->Form->end(__('Save')); ?>

Может ли кто-нибудь сказать мне, пожалуйста, как действовать дальше ? Я нашел несколько учебников, где эта функция автозаполнения реализована с помощью jQuery в CakePHP. Но, это реализуется с помощью одной таблицы, модель, вид и контроллер, как автомобили, Car.php, /вид/легковые автомобили/индекс.ОСАГО , CarsController.php. который не похож на мой сценарий.

0 Ответов