Codeigniter: проблема с синтаксическим анализатором в форме. Сохраняется только один

#php #html #codeigniter #codeigniter-datamapper

#php #HTML #codeigniter #codeigniter-datamapper

Вопрос:

У меня странная проблема с одной формой в Codeigniter. Я также использую DataMapper PHP. Итак, у меня есть одна форма с двумя операторами выбора с несколькими параметрами. Если выбран один, другой становится 0, если выбран другой, то первый становится 0. Есть идеи, почему такое странное поведение?

Контроллер

  public function edit($id)
  {
  // Check if the user is logged in
   if (!$this->ion_auth->logged_in())
{
  redirect('/');
}
elseif ($this->ion_auth->is_admin())
{
  // Create Object
  $predictions = new Prediction_model();
  $predictions->where('id', $id)->get();

  $categories = new Categories_model();
  $bookmakers = new Bookmakers_model();
  $categories->order_by('id', 'asc')->get();
  $bookmakers->order_by('id', 'asc')->get();

  // Default Object Options
  $defaultCategory = new Categories_model();
  $defaultCategory->where('id', $predictions->category_id)->get();
  $defaultBookmaker = new Bookmakers_model();
  $defaultBookmaker->where('id', $predictions->bookmaker_id)->get();

  $recent_categories = array();
  foreach ($categories as $category)
  {
    $single_category = array
    (
     'category_id' => $category->id,
     'sport' => $category->sport,
    );
    array_push($recent_categories, $single_category);
  }

  $recent_bookmakers = array();
  foreach ($bookmakers as $bookmaker)
  {
    $single_bookmaker = array
    (
     'bookmaker_id' => $bookmaker->id,
     'bookmaker' => $bookmaker->bookmaker,
    );
    array_push($recent_bookmakers, $single_bookmaker);
  }

  // Validation rules
  $rules = $this->prediction_model->rules;
  $this->form_validation->set_rules($rules);

  $data = array
  (
    'prediction_id' => $predictions->id,
    'defaultCategory' => $defaultCategory->sport,
    'defaultBookmaker' => $defaultBookmaker->bookmaker,
    'eventDate' => $predictions->eventDate,
    'event' => $predictions->event,
    'tip' => $predictions->tip,
    'bestOdd' => $predictions->bestOdd,
    'bookmakers' => $recent_bookmakers,
    'categories' => $recent_categories,
    'admin_content' => 'admin/predictions/edit',
  );

  if ($this->input->post('submit'))
  {
    $predictions->eventDate = $this->input->post('eventDate');
    $predictions->event = $this->input->post('event');
    $predictions->tip = $this->input->post('tip');
    $predictions->bestOdd = $this->input->post('bestOdd');
    $predictions->bookmaker_id = $this->input->post('bookmaker');
    $predictions->category_id = $this->input->post('icon');
  }

  if ($this->form_validation->run() == FALSE)
  {
    $this->parser->parse('admin/template_admin', $data);
  }
  else
  {
    $predictions->save();
    redirect('admin/predictions/');
  }
}
else
{
  // NO ACCESS
}
} // function edit
 

и вот ВИД:

   <?php echo form_open('admin/predictions/edit/{prediction_id}', 'class="form-horizontal"'); ?>
    <div class="form-group">
      <label for="category" class="col-sm-2 control-label">Category</label>
      <div class="col-sm-10">
        <select name="icon" class="form-control">
            <option selected='selected'>{defaultCategory}</option>
            <option>--------</option>
            {categories}
             <option value="{category_id}">{sport}</option>
            {/categories}
        </select>
      </div>
    </div>
    <div class="form-group">
      <label for="event" class="col-sm-2 control-label">Event</label>
      <div class="col-sm-10">
         <input type="text" name="event" class="form-control" value="{event}">
      </div>
    </div>
    <div class="form-group">
      <label for="tip" class="col-sm-2 control-label">Tip</label>
      <div class="col-sm-10">
        <input type="text" name="tip" class="form-control" value="{tip}">
      </div>
    </div>
      <div class="form-group">
        <label for="bookmaker" class="col-sm-2 control-label">Bookmaker</label>
      <div class="col-sm-5">
        <select name="bookmaker" class="form-control">
          <option selected='selected'>{defaultBookmaker}</option>
          <option>--------</option>
            {bookmakers}
               <option value="{bookmaker_id}">{bookmaker}</option>
            {/bookmakers}
        </select>
      </div>
      <label for="bestOdd" class="col-sm-2 control-label">Odd</label>
       <div class="col-sm-3">
        <input type="text" name="bestOdd" class="form-control" value="{bestOdd}">
      </div>
    </div>
    <div class="form-group">
      <label for="date" class="col-sm-2 control-label">Date</label>
      <div class="col-sm-4">
        <div class="input-group">
            <input size="16" name="eventDate" type="text" class="form-control eventDate" value="{eventDate}" readonly>
            <span class="input-group-addon">
              <span class="glyphicon glyphicon-calendar"></span>
            </span>
        </div>
      </div>
    </div>
    <div class="form-group">
      <div class="col-sm-offset-2 col-sm-10">
        <input type="submit" name="submit" value="Save" class="btn btn-success btn-lg">
      </div>
    </div>
  <?php echo form_close(); ?>
 

Комментарии:

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

2. Это происходит динамически или при перезагрузке?