Ich versuche, ein Formular zu erstellen, die eine Eingabe zB nimmt. 3 und erzeugt dann 3 bildet in einer Schleife auf, wie die Eingabe. Könnte jemand durchsehen und sehen, ob mein Code korrekt ist? Im Moment nicht meine Form Validierung sofort aus irgendeinem Grunde, und ich bin nicht sicher, wie ich vorgehen kann.CodeIgniter ein auf einem dynamischen Formular
Es gibt eine adulte Form und ein Kind Form. Beide hängen von den Eingaben von einer anderen Seite ab.
Das ist meine Ansicht
<?php echo form_open_multipart('Public/Details/next','class="inputform"');?>
<h3>Adults</h3>
<?php for($i=0;$i<$adults;$i++){?>
<input type="hidden" class="form-control" name="adult" value="<?php echo $adults;?>">
<label for="inputfirstname">Firstname</label>
<input type="text" class="form-control" name="inputfirstname[]" placeholder="Firstname" value="<?php echo set_value('inputfirstname['.$i.'],""');?>">
<!-- <div class="errormessage"><?php echo form_error('inputfirstname['.$i.']'); ?></div> -->
<label for="inputfirstname">Lastname</label>
<input type="text" class="form-control" name="inputlastname[]" placeholder="Lastname" value="<?php echo set_value('inputlastname[$i]');?>">
<!-- <div class="errormessage"><?php echo form_error('inputlastname['.$i.']'); ?></div> -->
<label for="inputdateofbirth">Date of Birth</label>
<input type="date" class="form-control" name="inputdateofbirth[]" value="<?php echo set_value('inputdateofbirth[$i]');?>">
<!-- <div class="errormessage"><?php echo form_error('inputdateofbirth['.$i.']'); ?></div> -->
<label for="inputicnumber">IC Number</label>
<input type="text" class="form-control" name="inputicnumber[]" placeholder="IC Number" value="<?php echo set_value('inputicnumber[$i]');?>">
<!-- <div class="errormessage"><?php echo form_error('inputicnumber['.$i.']'); ?></div> -->
<label for="inputpassportnumber">Passport Number</label>
<input type="text" class="form-control" name="inputpassportnumber[]" placeholder="Passport Number" value="<?php echo set_value('inputpassportnumber[$i]');?>">
<!-- <div class="errormessage"><?php echo form_error('inputpassportnumber['.$i.']'); ?></div> -->
<label for="inputmobilenumber">Mobile Number</label>
<input type="text" class="form-control" name="inputmobilenumber[]" placeholder="Mobile Number" value="<?php echo set_value('inputmobilenumber[$i]');?>">
<!-- <div class="errormessage"><?php echo form_error('inputmobilenumber['.$i.']'); ?></div> -->
<label for="inputemail">Email</label>
<input type="text" class="form-control" name="inputemail[]" placeholder="Email" value="<?php echo set_value('inputemail[$i]');?>">
<!-- <div class="errormessage"><?php echo form_error('inputemail['.$i.']'); ?></div> -->
<label for="inputconfirmemail">Confirm Email</label>
<input type="text" class="form-control" name="inputconfirmemail[]" placeholder="Confirm Email" value="<?php echo set_value('inputconfirmemail[$i]');?>">
<!-- <div class="errormessage"><?php echo form_error('inputconfirmemail['.$i.']'); ?></div> -->
<label for="inputaddress1">Address</label>
<input type="text" class="form-control" name="inputaddress1[]" placeholder="Address 1" value="<?php echo set_value('inputaddress1[$i]');?>">
<input type="text" class="form-control" name="inputaddress2[]" placeholder="Address 2" value="<?php echo set_value('inputaddress2[$i]');?>">
<input type="text" class="form-control" name="inputaddress3[]" placeholder="Address 3" value="<?php echo set_value('inputaddress3[$i]');?>">
<input type="text" class="form-control" name="inputaddress4[]" placeholder="Address 4" value="<?php echo set_value('inputaddress4[$i]');?>">
<input type="text" class="form-control" name="inputaddress5[]" placeholder="Address 5" value="<?php echo set_value('inputaddress5[$i]');?>">
<label for="inputpostcode">Postcode</label>
<input type="text" class="form-control" name="inputpostcode[]" placeholder="Postcode1" value="<?php echo set_value('inputpostcode[$i]');?>">
<!-- <div class="errormessage"><?php echo form_error('inputpostcode['.$i.']'); ?></div> -->
<?php } ?>
<?php if($children>0){ ?>
<h3>Children</h3>
<?php for($j=0;$j<$children;$j++){ ?>
<input type="hidden" class="form-control" name="children" value="<?php echo $children;?>">
<label for="inputchildfirstname">Firstname</label>
<input type="text" class="form-control" name="inputchildfirstname[]" value="<?php echo set_value('inputchildfirstname[$j]');?>" placeholder="Firstname">
<label for="inputchildlastname">Lastname</label>
<input type="text" class="form-control" name="inputchildlastname[]" value="<?php echo set_value('inputchildlastname[$j]');?>" placeholder="Lastname">
<label for="inputchilddateofbirth">Date of Birth</label>
<input type="date" class="form-control" name="inputchilddateofbirth[]" value="<?php echo set_value('inputchilddateofbirth[$j]');?>">
<label for="inputchildpassportnumber">Passport Number</label>
<input type="text" class="form-control" name="inputchildpassportnumber[]" placeholder="Passport Number" value="<?php echo set_value('inputchildpassportnumber[$j]');?>">
<div class="errormessage"><?php echo form_error('inputchildpassportnumber['.$j.']'); ?></div>
<?php }} ?>
<p><button type="submit" class="btn btn-primary">Next</button></p>
<p><a href="<?php echo site_url();?>Welcome">Cancel</a></p>
<?php echo form_close(); ?>
<p><?php echo $this->session->flashdata('Form'); ?></p>
-Controller
public function next(){
$adultlength = $this->input->post('adults');
$childrenlength = $this->input->post('children');
$this->form_validation->set_error_delimiters('<p class="error">', '</p>');
if($adultlength>0){
for ($i=0; $i <$adultlength; $i++) {
$this->form_validation->set_rules('inputfirstname['.$i.']', 'Firstname', 'trim|required');
$this->form_validation->set_rules('inputlastname['.$i.']', 'Lastname', 'trim|required');
$this->form_validation->set_rules('inputdateofbirth['.$i.']', 'Date of Birth', 'trim|required');
$this->form_validation->set_rules('inputicnumber['.$i.']', 'IC Number', 'trim|required');
$this->form_validation->set_rules('inputpassportnumber['.$i.']', 'Passport Number', 'trim|required');
$this->form_validation->set_rules('inputmobilenumber['.$i.']', 'Mobile Number', 'trim|required');
$this->form_validation->set_rules('inputemail['.$i.']', 'Email', 'trim|required');
$this->form_validation->set_rules('inputconfirmemail['.$i.']', 'Confirm Email', 'trim|required');
$inputfirstname[] = $this->input->post('inputfirstname['.$i.']');
$inputlastname[] = $this->input->post('inputlastname['.$i.']');
$inputdateofbirth[] = $this->input->post('inputdateofbirth['.$i.']');
$inputicnumber[] = $this->input->post('inputicnumber['.$i.']');
$inputpassportnumber[] = $this->input->post('inputpassportnumber['.$i.']');
$inputmobilenumber[] = $this->input->post('inputmobilenumber['.$i.']');
$inputemail[] = $this->input->post('inputemail['.$i.']');
$inputaddress1[] = $this->input->post('inputaddress1['.$i.']');
$inputaddress2[] = $this->input->post('inputaddress2['.$i.']');
$inputaddress3[] = $this->input->post('inputaddress3['.$i.']');
$inputaddress4[] = $this->input->post('inputaddress4['.$i.']');
$inputaddress5[] = $this->input->post('inputaddress5['.$i.']');
$inputpostcode[] = $this->input->post('inputpostcode['.$i.']');
}
}
if($childrenlength>0){
for($j=0;$j<$childrenlength;$j++){
$this->form_validation->set_rules('inputchildpassportnumber['.$j.']', 'Passport Number', 'trim|required');
$inputchildfirstname[] = $this->input->post('inputchildfirstname['.$j.']');
$inputchildlastname[] = $this->input->post('inputchildlastname['.$j.']');
$inputchilddateofbirth[] = $this->input->post('inputchilddateofbirth['.$j.']');
$inputchildpassportnumber[] = $this->input->post('inputchildpassportnumber['.$j.']');
}
}
if($this->form_validation->run()==false){
$data['productdetail'] = $this->ProductsModel->getProduct($this->session->userdata('productid'));
$data['adults'] = $this->session->userdata('adults');
$data['children'] = $this->session->userdata('children');
$this->load->view('public/publicMenu/navigationLink');
$this->load->view('public/publicDetails/details',$data);
$this->load->view('public/publicMenu/navigationJquery');
}else{
$transactionid = $this->generateRandomString(10);
if($adultlength>0){
for ($i=0; $i <$adultlength; $i++) {
$passengerdetails[] = array(
'firstname'=>$inputfirstname[$i],
'lastname'=>$inputlastname[$i],
'email'=>$inputemail[$i],
'phone'=>$inputmobilenumber[$i],
'accessLevel'=>'1',
'dateofbirth'=>$inputdateofbirth[$i],
'icnumber'=>$inputicnumber[$i],
'passportnumber'=>$inputpassportnumber[$i],
'address'=>$inputaddress1[$i]." ".$inputaddress1[$i]." ".$inputaddress1[$i]." ".$inputaddress1[$i]." ".$inputaddress1[$i]." ".$inputpostcode[$i],
'usertype'=>'adult',
'transactionid'=>$transactionid
);
}
}
if($childrenlength>0){
for($j=0;$j<$childrenlength;$j++){
$childpassengerdetails[] = array(
'firstname'=>$inputchildfirstname[$j],
'lastname'=>$inputchildlastname[$j],
'email'=>'',
'phone'=>'',
'accessLevel'=>'1',
'dateofbirth'=>$inputchilddateofbirth[$j],
'icnumber'=>'',
'passportnumber'=>$inputchildpassportnumber[$j],
'address'=>'',
'usertype'=>'child',
'transactionid'=>$transactionid
);
}
}
$this->session->set_userdata('passengerdetails',json_encode($passengerdetails));
$this->session->set_userdata('childpassengerdetails',json_encode($childpassengerdetails));
redirect('/Public/Payment');
}
}
Ich hoffe, dass mir jemand helfen kann mit diesem. Ich habe für eine lange Zeit hindurch sah, und ich kann nicht sehen, was ich bin fehlt oder vielleicht die ganze Sache ist falsch.
Hey! Vielen Dank für deine Hilfe. Ich habe herausgefunden, was passiert ist. Es stellte sich heraus, dass meine Schleife einen falschen Namen enthielt. Aber deine Antwort hat mir wirklich geholfen, es zu lösen. Vielen Dank! – JianYA