首页 > 解决方案 > 提交后如何在JForm中获取项目POST的值?

问题描述

我目前正在 Joomla 中构建一个组件,我必须获取用户提交的表单字段的值。之后,我必须将值插入数据库。问题是我只能插入$inventory_id但我无法获取表单字段的值。谢谢你。

<?php
    $input = JFactory::getApplication()->input; 
    $formData = new JRegistry($input->get('jform', '', 'array')); 

    $name = $formData->get('inventory_name', 'test');
    $leadtime = $formData->get('leadtime', null);
    $max_lead = $formData->get('max_lead', null);
    $daily_usage = $formData->get('daily_usage', null);
    $max_usage = $formData->get('max_usage', null); 

    //formula to calculate reorder point
    $lead_time_demand = $leadtime * $daily_usage;
    $safety_stock = ($max_usage * $max_lead) - ($daily_usage * $leadtime);
    $reorder_point = $lead_time_demand + $safety_stock;

    if (empty($this->item->id)){ //For new added item
        $inventory_id = $row['AUTO_INCREMENT'];

        $sql_new = "INSERT INTO wer_reorder_point_list (inventory_id, inventory_name, reorder_point)
                    VALUES ('$inventory_id', '$name', '$reorder_point');";
        mysqli_query($con,$sql_new);
    }
?>

标签: phpxmljoomla

解决方案


你从来没有$row在这段代码中声明过,那么$inventory_id = $row['AUTO_INCREMENT'];应该怎么做呢?

如果您的数据库配置为 autoincrement inventory_id,那么您不需要插入语句中的该列。所以你可以这样做:

$sql_new = "INSERT INTO wer_reorder_point_list (inventory_name, reorder_point) 
VALUES ('$name', '$reorder_point');";

它会自动用下一个整数填充该列。

顺便说一句,您还应该使用准备好的语句,特别是因为您有用户输入,这可能是一个安全问题。


推荐阅读