Я использую библиотеки zend для генерации штрих-кода в codeigniter.
Это мой контроллер:
$this->load->library('zend');
$this->zend->load('Zend/Barcode');
$barcode = $this->input->post('barcode'); //nomor id barcode
$imageResource = Zend_Barcode::factory('code128', 'image', array('text'=>$barcode), array())->render();
$imageName = $barcode.'.jpg';
$imagePath = 'barcode/'; // penyimpanan file barcode
imagejpeg($imageResource, $imagePath.$imageName);
$pathBarcode = $imagePath.$imageName;
$kd_barang = $this->input->post('kd_barang');
$pathBarcode = $this->input->post('barcode');
$editdata=array(
/*Nama Field => $Nama Variabel*/
'barcode' => $pathBarcode
);
/*Primary Key Sebagai Kunci*/
$where=array(
'kd_barang'=>$kd_barang
);
/*Mengambil Function Dari Model*/
$this->m_operator->aksi_update_barang($where,$editdata,'barang');
redirect('c_op/index');
Это моя точка зрения:
<form action = "<?php echo base_url(). 'index.php/c_op/aksi_editbarang'; ?>" method = "post">
<center>
<table border = "1">
<?php
foreach ($edit->result() as $c){?>
<tr>
<td>Kode Barang</td>
<!-- Primary Key Sebagai Kunci -->
<td><input type = "text" name = "kd_barang" value = "<?php echo $c->kd_barang ?>" readonly></input></td>
<tr>
<td>Barcode</td>
<td><input type = "text" name = "barcode" value = "<?php echo $c->kd_barang ?>" readonly><?php echo $c->barcode;?></td>
</tr>
<tr>
<td><button type = "submit">UPDATE</button></td>
</tr>
<?php } ?>
</table>
</center>
</form>
Но штрих-код не мог быть нарисован, потому что он сказал: «Текст должен быть предоставлен для штрих-кода, прежде чем рисовать». Но я уже заявлял, что текст для $ barcode - $ kd_barang. Он сохраняется в базе данных, но как текст, а не как изображение. Пожалуйста, помоги мне.
Я удалил перенаправление и заменил его на var_dump ($ pathBarcode), изображение отображается, но не сохраняется в базе данных
так что ваша проблема больше не в: «Текст должен быть предоставлен для штрих-кода перед рисованием»
но я открываю путь к изображению в штрих-коде папки, изображение все еще говорит, что текст должен быть предоставлен штрих-коду перед рисованием
так что снова я должен спросить var_dump ($ штрих-код); что это такое?
и причина, по которой путь не сохраняется, заключается в том, что вы определяете $pathBarcode = $this->input->post('barcode'); после $pathBarcode = $imagePath.$imageName;
это ноль, и есть сообщение об ошибке, неопределенный штрих-код переменной
вот твоя проблема. вот почему вы всегда должны подтверждать свой ввод
почему foreach? это ваше реальное представление, которое вы используете для отправки? знаете ли вы, что форма так не работает? например, если вы хотите иметь несколько входов под одним и тем же именем в одной и той же форме (и из цикла, если у вас более 1 результата, у вас будут повторяющиеся имена), вам нужно либо сделать его массивом, добавив имя [] и обработка на бэкэнде с помощью цикла, или вам нужно открыть и закрыть форму в цикле, чтобы каждая отправка формы была отдельной






По какой-то причине вы не получаете значение $barcode. Я подозреваю, что опубликованное вами представление не имеет прямого отношения.
Следующий код в некоторой степени проверит ввод и устранит проблему с путем.
$this->load->library('zend');
$this->zend->load('Zend/Barcode');
$barcode = $this->input->post('barcode'); //nomor id barcode
$kd_barang = $this->input->post('kd_barang');
if (is_null($barcode) || is_null($kd_barang)) {
show_error('Missing parameters');
}
// make barcode
$imageResource = Zend_Barcode::factory('code128', 'image', array('text' => $barcode), array())->render();
$imageName = $barcode . '.jpg';
$imagePath = 'barcode/'; // penyimpanan file barcode
imagejpeg($imageResource, $imagePath . $imageName);
$pathBarcode = $imagePath . $imageName;
$editdata = array(
'barcode' => $pathBarcode
);
$where = array(
'kd_barang' => $kd_barang
);
$this->m_operator->aksi_update_barang($where, $editdata, 'barang');
//redirect('c_op/index'); commented out for debugging
подождите, вы хотите сохранить изображение в своей базе данных, а не клятву? зачем тогда вы пишете это в файл? ваша колонка - большой двоичный объект? Что вы пытаетесь достичь?
а остальные 3 вопроса?
var_dump($barcode);что это?