Jump to content

Recommended Posts

Here's my problem, I hope someone can help me see the error!

 

When I go to edit a student, the information comes up in the form fine. When I try to submit the form I get three PHP Notices:

 

A PHP Error was encountered

Severity: Warning

Message: Missing argument 1 for Students::edit()

Filename: admin/students.php

Line Number: 72

 

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: sid

Filename: admin/students.php

Line Number: 94

 

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: sid

Filename: admin/students.php

Line Number: 97

 

Those are all in the controller. Here is the relevant code (sorry that there's so much :-[)

 

This is the index page (controller):

function manage()
{
	$data = $this->students->students(); // List the students
	$this->table->set_heading('ID', 'First', 'Last', 'Age', 'Gender', 'Level'); //Setting headings for the table

	foreach($data as $value => $key)
	{
		//Build action links
		$actions = anchor("admin/students/edit/".$key['sid']."/", "Edit") . anchor("admin/students/delete/".$key['sid']."/", "Delete");
		//Adding row to table
		$this->table->add_row($key['sid'], $key['fname'], $key['lname'], $key['age'], $key['gender'], $key['level'], $actions);
	}

	$this->auth->view('students/manage'); // Load the view
}

 

Here's the edit controller (in students):

	function edit($sid)
{	
	$this->form_validation->set_rules('fname', 'First Name', 'trim|required');
	$this->form_validation->set_rules('lname', 'Last Name', 'trim|required');
	$this->form_validation->set_rules('age', 'Age', 'trim|required|numeric');
	$this->form_validation->set_rules('gender', 'Gender', 'required');
	$this->form_validation->set_rules('level', 'Level', 'trim|required');

	if($this->form_validation->run() == FALSE)
	{
		$data = $this->students->fetch($sid);

		$this->auth->view('students/edit', $data[0]);
	}
	else
	{
		$data['fname'] = set_value('fname');
		$data['lname'] = set_value('lname');
		$data['age'] = set_value('age');
		$data['gender'] = set_value('gender');
		$data['level'] = set_value('level');

		if ($this->students->edit($sid, $data)==1)
		{$this->auth->view('students/edit_success');}

		if($this->students->edit($sid,$data)==0)
		{echo 'There was an error with the update process. Sorry!';}

 

and the data model:

function fetch($sid)
{
	$query = $this->db->get_where('students', array('sid' => $sid));
	return $query->result_array();
}

function edit($sid, $data)
	{
		$this->db->where('sid', $sid);
		$this->db->update('students', $data);
		return $this->db->affected_rows();
	}

 

and FINALLY the edit view:

<fieldset>
<legend>Personal Information</legend>
<?php
echo form_open('admin/students/edit');
?>
First Name: <?php echo form_input('fname', set_value('fname', $fname)); ?>
    Last Name: <?php echo form_input('lname', set_value('lname', $lname)); ?>
<?php echo form_error('fname'); 
echo form_error('lname'); ?>
<br /><br />Age: <?php echo form_input('age', set_value('age', $age)); ?>
<?php echo form_error('age'); ?>
<br />

<br />
Gender:
<?php echo form_radio('gender', set_value('male', 'Male')); ?> Male
<?php echo form_radio('gender', set_value('female', 'Female')); ?> Female

<?php echo form_error('gender'); ?>
</fieldset>

<fieldset>
<legend>Swimming Information</legend>
Level: <?php echo form_input('level', set_value('level', $level));
echo form_error('level'); ?>
</fieldset>

<?php echo form_submit('submit', 'Edit Student'); 
echo form_close(); ?>

 

Thank you for the help!

Link to comment
https://forums.phpfreaks.com/topic/184742-codeigniter-crud-issue/
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.