Как скрыть опцию из выбранного DropDown, если одинаковый идентификатор существует в обеих таблицах - PullRequest
0 голосов
/ 07 февраля 2019

Я использую PHP на основе структуры MVC, у меня есть 2 таблицы sale & receipt, когда пользователь хочет сделать receipt, он / она выберет опцию выпадающего меню, Sale No. исходя из DBsale таблица, которая имеет значение sale_id, так что пользователь делает recept от имени sale, а sale_id хранит в таблице receipt, я хочу добиться этого, если sale_id существует вreceipt таблица, скрыть эту опцию в параметрах Select DropDown.

Как и в следующих изображениях, у меня есть 3 sale запись и 1 receipt запись, receipt запись содержит sale_id, я хочу скрыть этоSale No. из выпадающего списка.

ТАБЛИЦА ПРОДАЖ enter image description here

ТАБЛИЦА ПОЛУЧЕНИЯ enter image description here

Выберите параметр в Receipt

<select class="form-control" id="sale_id" name="sale_id">
  <option disabled selected value="">Select One</option>
  <?php foreach($sales as $sale): ?>
  <option value="<?php echo $sale['sale_id']; ?>" <?php echo ($sale_id==$ sale[ 'sale_id']? 'selected="selected"': ''); ?>>
    <?php echo $sale['sale_no']; ?>&nbsp;=>&nbsp;
    <?php echo $sale['customer_name']; ?>
  </option>
  <?php endforeach; ?>
</select>

Мой контроллер квитанций: как я получаю данные из таблицы продаж в моемОпция DropDown

$this->model['sale'] = $this->load->model('sale/sale');
$this->data['sales'] = $this->model['sale']->getRows();

Моя модель квитанции

class ModelTransactionReceipt extends HModel {

    protected function getTable() {
        return 'receipt';
    }

    protected function getView() {
        return 'vw_receipt';
    }

    public function getMaxReceiptNo(){
        $sql = "SELECT MAX(receipt_no) as max_no FROM `receipt`";
        $query = $this->db->query($sql);
        $record = $query->row;

        if(empty($record['max_no'])) {
            $max_no =  1;
        } else {
            $max_no =  $record['max_no']+1;
        }

        return $max_no;
    }
        public function getRemainingSale() {
           $sql = "SELECT sale_id";
           $sql = " FROM `sale`";
           $sql = " WHERE  sale_id NOT IN (SELECT sale_id FROM `receipt`)";

           $query = $this->db->query($sql);
           $record = $query->row;
    }

}

1 Ответ

0 голосов
/ 07 февраля 2019

Я сделал эту функцию в моем Sale Model:

    public function getRemainingSale() {
        $sql = "SELECT `sale_id`,";
        $sql .= " `sale_no`,";
        $sql .= " `customer_name`,";
        $sql .= " `sale_amount`";
        $sql .= " FROM   sale";
        $sql .= " WHERE  sale_id NOT IN (SELECT sale_id FROM `receipt`)";

        $query = $this->db->query($sql);
        $record = $query->rows;
        return $record;
    }

И вызову Sale Model с этой функцией в receipt controller:

        $this->model['sale'] = $this->load->model('sale/sale');
        $this->data['sales'] = $this->model['sale']->getRemainingSale();
//        d($this->data['sales'],true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...