我正在尝试一次生成多个条形码,并将生成的条形码数字保存在我的数据库中。现在我已经生成了 多个条形码但我在将其保存到数据库时遇到了问题。
我的代码到现在为止: -
function getbarcode(num,barcode)
{
for (var i = 1; i <= num; i++) {
var barcodenum = parseInt(barcode)+parseInt(i);
var patron= barcodenum.toString();
var type = "code11";
var settings = {
barWidth: 2,
barHeight: 50,
moduleSize: 5,
addQuietZone: true,
marginHRI: 5,
bgColor: "#FFFFFF",
color: "#000000",
fontSize: 10,
output: "css",
posX: 0,
posY: 0,
fontOptions: "bold",
};
$('#barcoderesult').append('<div id="showBarcode'+ i +'"
style="float:left" />');
$("#showBarcode"+i).barcode(patron, type, settings);
$("#showbarcode"+i).animate({height: "100%", width: "100%"});
}
}
现在在我的变量顾客中,它包含多个生成的条形码编号。现在我需要将patron中的条形码数字推送到一个数组并通过ajax在yii2控制器中传递数组?我该怎么做 ?我没有任何想法。
答案 0 :(得分:0)
首先,创建一个数组,即array_barcode
并使用JavaScript Array push() Method将值填充到此数组中。然后,在for循环之后,如果它不为空,则通过AJAX将这些数组值传递给控制器。
<script>
function getbarcode(num, barcode){
var array_barcode = [];
for (var i = 1; i <= num; i++) {
var barcodenum = parseInt(barcode) + parseInt(i);
var patron = barcodenum.toString();
array_barcode.push(patron); //Push generated barcode into array 'array_barcode'
var type = "code11";
var settings = {
barWidth: 2,
barHeight: 50,
moduleSize: 5,
addQuietZone: true,
marginHRI: 5,
bgColor: "#FFFFFF",
color: "#000000",
fontSize: 10,
output: "css",
posX: 0,
posY: 0,
fontOptions: "bold",
};
$('#barcoderesult').append('<div id="showBarcode' + i + '"style = "float:left" / > ');
$("#showBarcode" + i).barcode(patron, type, settings);
$("#showbarcode" + i).animate({height: "100%", width: "100%"});
}
if(array_barcode.length > 0){//If array is not empty
$.ajax({
//url: "/controller-name/controller-action-name",
url: "/MyController/my-action",
type: "POST",
data: {array_barcode : array_barcode},
success: function (data) {
alert("Success");
},
error: function () {
alert("Error Ocurred");
},
});
}
}
</script>
<强>控制器强>
因为提供的信息不多。因此,我假设控制器名称为MyController
,操作名称为MyAction
。现在,在操作MyAction
中,检查请求是否是AJAX类型。否则,抛出错误。通过Yii::$app->request->post()
检索数组值。
<?php
class MyController
{
.
.
.
public function actionMyAction(){
if (Yii::$app->request->isAjax) {
$array_barcode = Yii::$app->request->post('array_barcode');
foreach($array_barcode as $barcode){
/*
* Your Logic
* Save '$barcode' to database
*/
}
}
throw new ForbiddenHttpException("Problem Ocurred");
}
}
?>