У меня есть два поля ввода с ценой продукта и ценой исполнения продукта. В котором цена реализации продукта может быть равна нулю, но не может быть меньше или равна цене продукта. Я создал функцию обратного вызова, но она не работает, она выдает ошибку «Невозможно получить доступ к сообщению об ошибке, соответствующему вашему имени поля. Цена исполнения продукта (price_check)».
Вот функция обратного вызова:
function price_check(){
$pd_price = intval($this->input->post('product_price'));
$pd_strikeprice = intval($this->input->post('product_strike_price'));
if ($pd_strike_price > $pd_price OR $pd_strike_price = 0){
return true;
}else{
$this->form_validation->set_message('price_check', 'Product Strike Price can be zero(0) but cannot be less than or equal to Product Price.');
return false;
}
}
И вот проверка формы:
$this->form_validation->set_rules('product_strike_price', 'Product Strike Price', 'trim|required|is_natural|callback_price_check');
Кто-нибудь, пожалуйста, помогите мне в решении проблемы.
передайте вход цена продукта вашей функции обратного вызова, как это.
callback_price_check['.$this->input->post('product_price').']
это означает, что вы передаете два аргумента в свою функцию обратного вызова, чтобы на следующем шаге все было так.
public function price_check($pd_strikeprice, $pd_price){
if ($pd_strike_price > $pd_price || $pd_strike_price = 0){
return true;
}else{
$this->form_validation->set_message('price_check', 'Product Strike Price can be zero(0) but cannot be less than or equal to Product Price.');
return false;
}
}
Пожалуйста, дайте мне знать результат.
установите для него публичную функцию price_check($pd_strikeprice, $pd_price)
:) Спасибо, приятель, теперь все работает. Я внес небольшие изменения: $pd_strike_price < $pd_price || $pd_strike_price = 0
функция обратного вызова не определяет синтаксис $this->input->post().