Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Klaus

Recommended Posts

Здравствуйте.
У меня 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 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.