измените тег <td>на редактируемый и отправьте форму после редактирования cakephp 2 - PullRequest
0 голосов
/ 09 мая 2019

Я работаю в проекте CakePHP 2.На мой взгляд, у меня есть таблица, на которой я хочу сделать ячейку редактируемой.После редактирования я хочу сохранить его.

Я попробовал contentEditable для HTML 5. Таким образом я могу редактировать, но данные не передаются в контроллер.Я также попробовал innerHTML, который изменяет ячейку на ввод, но я не могу ничего написать в поле ввода.Как я могу решить проблему?Спасибо

<script>
function makeInput(e) {
   document.getElementById('test').innerHTML= "<input type='text'>"
}

function formSubmit2(){
  document.getElementById('StockReportEditForm').submit();
}
</script>
<?php if(!empty($results)): ?>
  <?php echo $this->Form->create('StockReport',array('url'=>array('type'=>'post','action'=>'edit')));?>
<table>
  <tr>
      <th>Year Week</th>
      <th>Counter</th>
      <th>Refrigerator</th>
      <th>Freezer</th>
      <th>Summary</th>
  </tr>

  <?php foreach ($results as $result): ?>
    <?php $today = date("Y-m-d", strtotime("+1 week"));
    $date = new DateTime($today);
    $week = $date->format("W");
    $week_int = (int)$week;
    $week_int=$week_int-1;
    $last_week = (string)$week_int;
    $year = date("Y"); ?>
<tr>
  <?php if($year.$last_week==$result['StockReport']['yearweek']): ?>
    <td onclick="makeInput(this)" id="test">
      <?php echo $result['StockReport']['yearweek']; ?>
  <?php else:?>
    <td><?php echo $result['StockReport']['yearweek'];?></td>
  <?php endif ?>
  </td>
    <td><?php echo $result['StockReport']['counter']; ?></td>
    <td><?php echo $result['StockReport']['refrigerator']; ?></td>
    <td><?php echo $result['StockReport']['freezer']; ?></td>
    <td><?php echo $result['StockReport']['summary']; ?></td>
</tr>

<?php endforeach; ?>
</table>
<?php
// echo $this->Form->submit('Submit');
$options = array(
    'label' => 'Submit',
    'div' => array(
        'class' => 'glass-pill',
    ),
    'id'=>'submitButton',
    'onclick'=>'formSubmit2()'
);
echo $this->Form->end($options); ?>
<?php endif; ?>

1 Ответ

0 голосов
/ 09 мая 2019

Я бы создал скрытый ввод в элементе td, и когда форма будет отправлена, я скопирую htmlinner из contenteditabe в скрытое значение ввода.

...