Klaus

Подскажите где ошибка.

Рекомендуемые сообщения

Klaus    2

Здравствуйте.
У меня OC2.1
Релизую возможность добавления в базы моделей авто.

Создал базы:

oc_mymake с полями: , mymake_id, name, status (это для моделей)

oc_mymodel с полями: mymodel_id, mymake_id, name, status (это для модификаций)

oc_mymodel_year  с полями mymodel_year_id,  mymodel_id, start_year, stop_year (для привязки к модификациям годов начала и окончания выпуска)

Сделал в адинке страницы с моделями и с модификациями.
На странице с модификациями можно выбрать модель к которой относится модификация и сразу плюсиком можно добавлять года (начало выпуска и конец выпуска)

И так я добавляю модификацию и плюсиком добавляю года например одна строка 1997-2000, а вторая строка 2001-2010
years.jpg

После сохранения в базе oc_mymodel_year должно добавится две строки, но на самом деле сохраняется только одна (2001-2010)
Если я зайду в режим редактирования модификации, то увижу только одну строку с годами 2001-2010. Теперь добавлю снова запись с годами 1997-2000. После этого у меня в базе появлется ещё одна строка, а снова зайдя в режим редактирования модификации я вижу, что строки две.

Получается, что логика работает, но как-то коряво, я не могу за раз добавить несколько значений годов.

Скорее всего ошибка простейшая, но я не знаю РНР  и делаю всё методом тыка, нахожу похожие по функционалу модули и с них срисовываю. Видимо что-то недосрисовал.

Я прикрепляю к сообщению файлы модели, контроллера. Темплейт форум не даёт загрузить, поэтому кидаю его прямо текстом

<?php echo $header; ?><?php echo $column_left; ?>
<div id="content">
  <div class="page-header">
    <div class="container-fluid">
      <div class="pull-right">
        <button type="submit" form="form-mymodel" data-toggle="tooltip" title="<?php echo $button_save; ?>" class="btn btn-primary"><i class="fa fa-save"></i></button>
        <a href="<?php echo $cancel; ?>" data-toggle="tooltip" title="<?php echo $button_cancel; ?>" class="btn btn-default"><i class="fa fa-reply"></i></a></div>
      <h1><?php echo $heading_title; ?></h1>
      <ul class="breadcrumb">
        <?php foreach ($breadcrumbs as $breadcrumb) { ?>
        <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li>
        <?php } ?>
      </ul>
    </div>
  </div>
  <div class="container-fluid">
    <?php if ($error_warning) { ?>
    <div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> <?php echo $error_warning; ?>
      <button type="button" class="close" data-dismiss="alert">×</button>
    </div>
    <?php } ?>
    <div class="panel panel-default">
      <div class="panel-heading">
        <h3 class="panel-title"><i class="fa fa-pencil"></i> <?php echo $text_form; ?></h3>
      </div>
      <div class="panel-body">
        <form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="form-mymodel" class="form-horizontal">
          <div class="form-group required">
            <label class="col-sm-2 control-label" for="input-name"><?php echo $entry_name; ?></label>
            <div class="col-sm-10">
              <input type="text" name="name" value="<?php echo $name; ?>" placeholder="<?php echo $entry_name; ?>" id="input-name" class="form-control" />
              <?php if ($error_name) { ?>
              <div class="text-danger"><?php echo $error_name; ?></div>
              <?php } ?>
            </div>
          </div>

          <div class="form-group">
            <label class="col-sm-2 control-label" for="input-mymake"><?php echo $entry_mymake; ?></label>
            <div class="col-sm-10">
              <select name="mymake_id" id="input-mymake" class="form-control">
                <?php foreach ($countries as $mymake) { ?>
                <?php if ($mymake['mymake_id'] == $mymake_id) { ?>
                <option value="<?php echo $mymake['mymake_id']; ?>" selected="selected"><?php echo $mymake['name']; ?></option>
                <?php } else { ?>
                <option value="<?php echo $mymake['mymake_id']; ?>"><?php echo $mymake['name']; ?></option>
                <?php } ?>
                <?php } ?>
              </select>
            </div>
          </div>
          <div class="form-group">
            <label class="col-sm-2 control-label" for="input-status"><?php echo $entry_status; ?></label>
            <div class="col-sm-10">
              <select name="status" id="input-status" class="form-control">
                <?php if ($status) { ?>
                <option value="1" selected="selected"><?php echo $text_enabled; ?></option>
                <option value="0"><?php echo $text_disabled; ?></option>
                <?php } else { ?>
                <option value="1"><?php echo $text_enabled; ?></option>
                <option value="0" selected="selected"><?php echo $text_disabled; ?></option>
                <?php } ?>
              </select>
            </div>
          </div>
       
         <table id="year" class="table table-striped table-bordered table-hover">
            <thead>
              <tr>
                <td class="text-left" width="40%">Год от</td>
                <td class="text-left" width="40%">Год до</td>
                <td></td>
              </tr>
            </thead>
            <?php $year_row = 0; ?>
            <tbody>
            <?php foreach ($mymodel_years as $mymodel_year) { ?>
            	<tr>
                	
				<td class="left"><input type="text" name="mymodel_year[<?php echo $year_row; ?>][start_year]" value="<?php echo $mymodel_year['start_year']; ?>" size="4" class="form-control" /></td>
                <td class="left"><input type="text" name="mymodel_year[<?php echo $year_row; ?>][stop_year]" value="<?php echo $mymodel_year['stop_year']; ?>" size="4" class="form-control" /></td>
				
                <td class="left"><a onclick="$(this).parents('tr').remove();" class="btn btn-danger"><i class="fa fa-minus-circle"></i></a></td>
                    
            	</tr>
                <?php $year_row++; ?>
            <?php } ?>
            </tbody>
           <tfoot>
              <tr>
               
				<td colspan=2></td>
                <td class="left"><a onclick="addyear();" class="btn btn-primary"><i class="fa fa-plus-circle"></i></a></td>
              </tr>
            </tfoot>
          </table>
           </form>
      </div>
<script type="text/javascript">
$('#year tbody').on('keydown', '.yearend', function(e){
	var keyCode = e.keyCode || e.which;
	
	if(keyCode == 9){
		e.preventDefault();
		addyear();
	}
});
</script>
<script type="text/javascript">
var year_row = <?php echo $year_row; ?>;

function addyear() {
	html = '  <tr>';    
	html += '    <td class="left"><input type="text" name="mymodel_year[' + year_row + '][start_year]" value="" size="4" class="form-control" /></td>';
    html += '    <td class="left"><input type="text" class="yearend form-control" name="mymodel_year[' + year_row + '][stop_year]" value="" size="4" class="form-control" /></td>';
	html += '    <td class="left"><a onclick="' + "$(this).parents('tr').remove();" + '" class="btn btn-danger"><i class="fa fa-minus-circle"></i></a></td>';
	html += '  </tr>';
	
	$('#year tbody').append(html);
	
	makeComplete(year_row);
	modelComplete(year_row);
	engineComplete(year_row);

	$('.make').last().focus();
		
	year_row++;
}
</script>
    </div>
  </div>
</div>

<?php echo $footer; ?>

Я уже 3 дня вожусь с эти, хотя понимаю что там делов на 5 минут.

Помогите пожалуйста, подскажите в чём мой косяк.

mymodel.php

mymodel.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу