Rules in for loop - pippuccio76 - 06-27-2023
HI hi have 200 field named serial_1 , serial_2,serial_3 .... serial_200
Can i write rule with for loop ?
RE: Rules in for loop - JustJohnQ - 06-27-2023
Is this related to: https://forum.codeigniter.com/showthread.php?tid=87898 ?
I suggest to rename your fieldnames to serial[1], serial[2], serial[3], ... , serial[200]
To validate those fields, see:
https://forum.codeigniter.com/showthread.php?tid=82985
RE: Rules in for loop - pippuccio76 - 06-27-2023
Work , but how can i set custom error message :
Code: 'seriale.*'=>[
'label'=>"Seriale.*",
'rules'=>'seriale_corretto_cambio_clienti|permit_empty',
'errors'=>[
'seriale_corretto_cambio_clienti'=>'{field} non è un seriale corretto',
]
],
How can set label properly to show the correct field with problem ?
RE: Rules in for loop - JustJohnQ - 06-27-2023
I am guessing now, but maybe like this:
https://codeigniter.com/user_guide/libraries/validation.html#getting-all-errors
RE: Rules in for loop - pippuccio76 - 06-27-2023
(06-27-2023, 07:54 AM)pippuccio76 Wrote: [quote="JustJohnQ" pid="410743" dateline="1687874459"]
I am guessing now, but maybe like this:
https://codeigniter.com/user_guide/libraries/validation.html#getting-all-errors
This is my error :
Code: [list][*]Seriale 1 obbligatorio
[*]Seriale.* non è un seriale corretto
[*]Seriale.* non è un seriale corretto
[*]Seriale.* non è presente in magazzino
[*]Seriale.* non è un seriale corretto
[/list]
Seriale 1 have a separated rules (required) , i add a another custom rules for every seriale
RE: Rules in for loop - pippuccio76 - 06-28-2023
(06-27-2023, 07:54 AM)pippuccio76 Wrote:
(06-27-2023, 07:54 AM)pippuccio76 Wrote: (06-27-2023, 07:00 AM)JustJohnQ Wrote: I am guessing now, but maybe like this:
https://codeigniter.com/user_guide/libraries/validation.html#getting-all-errors
This is my error :
Code: [list][*]Seriale 1 obbligatorio
[*]Seriale.* non è un seriale corretto
[*]Seriale.* non è un seriale corretto
[*]Seriale.* non è presente in magazzino
[*]Seriale.* non è un seriale corretto
[/list]
Seriale 1 have a separated rules (required) , i add a another custom rules for every seriale How can i show " Seriale 1 ( or Seriale[1] ) non è un seriale Corretto" instead "Seriale.* non è un seriale Corretto" ? i have 200 rows , find the error is a problem...
[SOLVED] Rules in for loop - pippuccio76 - 07-03-2023
SOLVED:
Change input name as seriale_1 ,seriale_2, ....seriale_200
Change rule as :
Code: for ($i = 1; $i <=200 ; $i++) {
$rules['seriale_'.$i]= [
'rules'=>'seriale_corretto_cambio_clienti|macchina_is_present_Picking|permit_empty',
'errors'=>[
'seriale_corretto_cambio_clienti'=>"Seriale $i non è un seriale corretto",
'macchina_is_present_Picking'=>'Seriale $i non è presente in magazzino ',
]
];
}
RE: Rules in for loop - pippuccio76 - 07-04-2023
The problem is when i must send more parameter as array...
RE: Rules in for loop - pippuccio76 - 07-05-2023
(07-04-2023, 05:07 AM)pippuccio76 Wrote: The problem is when i must send more parameter as array...
I create a custom validation for update :
Code: /**
* Funzione che controlla se è presente il seriale in altri pallet
*/
public function seriale_presente_altri_pallet_on_update(string $str,string $fields, array $data)
{
$pancali_picking_model = new Pancali_pickingModel();
$macchina_model = new MacchinaModel();
//dd($data);
//variabile per validazione
$validazione= true ;
//variabile per immagazzinare il seriale delle macchine
$error_message = '';
//ciclo tutte le macchine
for ($i = 1; $i <=18 ; $i++) {
if(isset($data['id_macchina_'.$i]) AND $data['id_macchina_'.$i]!=''){
$macchina = $macchina_model->where('seriale',$data['id_macchina_'.$i])->first();
if($macchina){
$id_macchina = $macchina->id;
$pancali = $pancali_picking_model->where('id!=',$data['id'])
->groupStart()
->where('id_macchina_1',$id_macchina)
->orWhere('id_macchina_2',$id_macchina)
->orWhere('id_macchina_3',$id_macchina)
->orWhere('id_macchina_4',$id_macchina)
->orWhere('id_macchina_5',$id_macchina)
->orWhere('id_macchina_6',$id_macchina)
->orWhere('id_macchina_7',$id_macchina)
->orWhere('id_macchina_8',$id_macchina)
->orWhere('id_macchina_9',$id_macchina)
->orWhere('id_macchina_10',$id_macchina)
->orWhere('id_macchina_11',$id_macchina)
->orWhere('id_macchina_12',$id_macchina)
->orWhere('id_macchina_13',$id_macchina)
->orWhere('id_macchina_14',$id_macchina)
->orWhere('id_macchina_15',$id_macchina)
->orWhere('id_macchina_16',$id_macchina)
->orWhere('id_macchina_17',$id_macchina)
->orWhere('id_macchina_18',$id_macchina)
->groupEnd()
->findAll();
if(count($pancali)){
(.=' '.$macchina->seriale.'-';
$validazione= false ;
}
}
}
}
return $validazione;
}//end seriale_presente_altri_pallet_on_update
Can i return an error message from this function($error_message) + true or false ?
|