【发布时间】:2023-03-05 13:56:01
【问题描述】:
我似乎找不到我做错了什么
<pre>
<?php
print_r($_POST); echo $parcel_type;
?>
</pre>
打印给出:array() $parcel_type 给出:0
保存时不会传递选择值。其他 opencart 选择框的编码似乎相同,但确实传递了值。
有人知道我哪里出错了吗?
admin/view/template/catalog/product_form.tpl
<PRE>
<?php
$parcel_option = array(
'0' => 'pakket' ,
'1' => 'brievenbuspakket',
'2' => 'brievenbuspakje <20gr',
'3' => 'brievenbuspakje <50gr',
'4' => 'brievenbuspakje <100gr',
'5' => 'brievenbuspakje <250gr',
'6' => 'brievenbuspakje <2 KG',
);
?>
<div class="form-group">
<label class="col-sm-2 control-label" for="input-parcel_type"><span data-toggle="tooltip" title="Kies verzendvorm"</span>
<?php
print_r($_POST);
echo $parcel_type; ?>
</label>
<div class="col-sm-10">
<select name="parcel_type" id="input-parcel-type" class="form-control">
<?php
if (isset($data['parcel_type'])) {
?>
<option value="" >Kies verzendvorm</option>
<?php
$parcel_type = 0;
$parcel_text = 0;
asort($parcel_option);
reset($parcel_option);
foreach($parcel_option as $parcel_type => $parcel_text):
echo '<option value="'.$parcel_type.'">'.$parcel_text.'</option>';
endforeach;
?>
</PRE>
admin/controller/catalog/product.php
<pre> if (isset($this->request->post['parcel_type'])) {
$data['parcel_type'] = $this->request->post['parcel_type'];
} elseif (!empty($product_info)) {
$data['parcel_type'] = $product_info['parcel_type'];
} else {
$data['parcel_type'] = '0' ;
}
</pre>
模型文件编辑功能
<PRE>
$this->db->query("UPDATE " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', ean = '" . $this->db->escape($data['ean']) . "', jan = '" . $this->db->escape($data['jan']) . "', isbn = '" . $this->db->escape($data['isbn']) . "',bol_ship_time = '" . $this->db->escape($data['bol_ship_time']) . "', mpn = '" . $this->db->escape($data['mpn']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', product_condition = '" . (int)$data['product_condition'] . "',external_shipment = '" . (int)$data['external_shipment'] . "', parcel_type = '" . (int)$data['parcel_type'] . "', bol_visable = '" . (int)$data['bol_visable'] . "', nextail_visable = '" . (int)$data['nextail_visable'] . "', dutch_visable = '" . (int)$data['dutch_visable'] . "', belgium_visable = '" . (int)$data['belgium_visable'] . "', price = '" . (float)$data['price'] . "', cost = '" . (float)$data['cost'] . "', cost_amount = '" . (float)$data['cost_amount'] . "', cost_percentage = '" . (float)$data['cost_percentage'] . "', cost_additional = '" . (float)$data['cost_additional'] . "', costing_method = '" . (int)$data['costing_method'] . "', supplier_id = '" . (int)$data['supplier_id'] . "', wholesale_cost = '" . (float)$data['wholesale_cost'] . "', shipping_cost = '" . (float)$data['shipping_cost'] . "', added_shipping_cost = '" . (float)$data['added_shipping_cost'] . "', packaging_cost = '" . (float)$data['packaging_cost'] . "', handling_cost = '" . (float)$data['handling_cost'] . "',storage_cost = '" . (float)$data['storage_cost'] . "', printing_cost = '" . (float)$data['printing_cost'] . "',margin = '" . (float)$data['margin'] . "',bol_fee_cost = '" . (float)$data['bol_fee_cost'] . "', bol_cost = '" . (float)$data['bol_cost'] . "', nextail_fee_cost = '" . (float)$data['nextail_fee_cost'] . "', nextail_cost = '" . (float)$data['nextail_cost'] . "',other_cost = '" . (float)$data['other_cost'] . "',bol_price = '" . (float)$data['bol_price'] . "', nextail_price = '" . (float)$data['nextail_price'] . "', min_profit = '" . (float)$data['min_profit'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . (int)$data['tax_class_id'] . "', sort_order = '" . (int)$data['sort_order'] . "', date_modified = NOW() WHERE product_id = '" . (int)$product_id . "'");
</PRE>
【问题讨论】:
-
点击添加到购物车按钮时触发的javascript函数怎么样?可以发一下吗?
-
它与添加到购物车按钮无关。此功能已添加到产品页面 (product_form) 的管理端。还添加了一些工作正常的复选框。只有选择框没有。这是用于其他 html 选择框的所有代码的精确副本。我在管理 product_form 页面中找不到任何 java 或 JQuiry。数据库字段 (parcel_type) 已添加到模型中。我以为我错过了 JQuiry 或其他东西,但我在产品表单中的其他 html 选择中找不到它。
-
如果您在点击提交时查看浏览器的开发者工具中的网络活动,您是否看到正在发送的值?
-
-----WebKitFormBoundarybU8ytNpb78nsswIE Content-Disposition: form-data; name="parcel_type" 6 发送。基值为 0 我检查了数据库。不用找了。前端没有变化。对于需要知道如何找到 $_post 值的任何人,请检查此网址 stackoverflow.com/questions/15603561/…
-
如果我删除 product.php 中的 (isset()) ,则会出现未定义索引 parcel_type 错误。我检查了数据库.. parcel_type 在那里。检查模型是否有错字。非。 paorduct_form.tpl 中的选择值在那里。所以这应该只在控制器 product.php 中留下一个错误。我检查了产品的数组 'parcel_type' => $result['parcel_type'],
标签: php select opencart html-select dropdown