Have gotten a bit further, but now trying to figure out how to pass
the variable inserted from my search controller to my results view.
Here is my search controller (works a treat except for the search
bit ;)
function searchcourse()
{
if (!empty($this->data)) {
$course = $this->data['Student']['course'];
$student=$this->Student->find(array('Student.course' =>
$course));
if ($student) {
$this->redirect(array('action' => 'viewsome', $course)); //
not sure what to put here
} else
{
$this->Flash('Course not found','/students/searchstudent');
}
}
}
and my 'viewsome' controller
function viewsome($course = null)
{
$this->set('students', $this->Student->findAll());
}
finally the viewsome view
<?php
$coursename ="???"; //how do I get the variable in here
foreach ($students as $student):
if ($student['Student']['course'] == $coursename){
$number = $student['Student']['studentnumber'];
$name = $student['Student']['studentname'];
$course = $student['Student']['course'];
echo "<tr><td>$number</td>";
echo "<td>$name</td>";
echo "<td>$course</td></tr>";
}
I think that once I have this figured out, I will be able to
manipulate it to do any search.
Thanks again,
Damo.
On Mar 24, 7:40 am, "Dardo Sordi Bogado" <[EMAIL PROTECTED]> wrote:
> On Mon, Mar 24, 2008 at 1:32 AM, damo <[EMAIL PROTECTED]> wrote:
>
> > thanks again Dardo,
> > I got the date working, although I also had to add the 'minYear' also
> > or else we only have very young students ;)
>
> You are welcome.
>
> > Also got thesearchfunction to work with only a little tinkering.
> > Took me a while to realise that I needed to change the form to: '<?php
> > echo $form->create('Student', array('action' => 'search')); ?>'
> > but that was straight forward. I also needed to change the flash
> > message to $this->Flash('Student not found','/students/search');
>
> Nice.
>
> > Am I correct in assuming that I will need to put in differentsearch
> > functions for each type ofsearchI want to do. Eg. studentsearch,
> > coursesearch? Where coursesearch returns all the students doing the
> > course (I would also need a differentviewfunction also, or could I
> > just manipulate my viewall function, because that is how I would like
> > it presented).
>
> That depends of your style, but in general I think is a good practice
> to put thosesearchseparated (I'm talking without having seen your
> code).
>
> > Now I'm really getting somewhere! Albeit with my hand held :)
>
> I'm happy you are right on track, enjoy CakePHP!
>
>
>
> > On Mar 23, 5:16 pm, "Dardo Sordi Bogado" <[EMAIL PROTECTED]> wrote:
>
> > > On Sun, Mar 23, 2008 at 3:00 AM, damo <[EMAIL PROTECTED]> wrote:
>
> > > > Thanks Dardo, I have taken your advise and added the additional
> > > > field. It all seems to work great now, I'm suprised with how quickly
> > > > things come together even on my first attempt. So now I have an add,
> > > > edit, delete,viewfunctions. All of this is based of the tutorial
> > > > and I am very pleased with my progress but I am quickly realising how
> > > > much more there is to it!!
>
> > > You are wecome, I'm glad you are making progress, cake is so powerful.
>
> > > > A couple of more questions:
> > > > I have a 'date' field which is for Date of Birth. In the addformas
> > > > it is it lists dates from 1988 to 2028. I obviously don't need future
> > > > dates for this, so how can I change this so that the latest date is
> > > > today (or some arbitrary recent date), and it's earliest date is back
> > > > x amount of years.
>
> > > $form->input('mydatefield', array('maxYear' => 2008));
>
> > > > Second, I would like to put together a very simplesearchfunction
> > > > preferably based upon the tutorial (because I understand that). I
> > > > haven't been able to find anything particularly easy to implement in
> > > > my reading so far. All I really want to do issearchfor the
> > > > 'student_number' and then 'view' that record, failing that echo
> > > > 'student doesn't exist', or something like that.
>
> > > This may work,
>
> > > in your controller :
>
> > > functionsearch() {
>
> > > if (!empty($this->data)) {
> > > $number = $this->data['Student']['student_number'];
> > > $student = $this->Student->findByStudentNumber($number);
> > > // or : $student =
> > > $this->Student->find(array('Student.student_number' => $number));
>
> > > if ( $student) {
> > > $this->redirect(array('action' => 'view',
> > $student['Student']['id']));
> > > } else {
> > > $this->Session->setFlash('Student not found');
> > > }
>
> > > }
> > > > On Mar 22, 7:04 pm, "Dardo Sordi Bogado" <[EMAIL PROTECTED]> wrote:
> > > > > Cake automagically sets primary keys fields as hidden, you can
> > > > > override the default behavior:
>
> > > > > echo $form->input('id', array('label' => 'Student Number: ', 'type'
> > => 'text'));
>
> > > > > Maybe is better, just to add a new field called student_number and
> > > > > make it an sql unique index and let the ids alones.
>
> > > > > On Sat, Mar 22, 2008 at 2:41 AM, damo <[EMAIL PROTECTED]> wrote:
>
> > > > > > I'm sure this is ridiculously simple to resolve, but the below
> > seems
> > > > > > to work perfectly:
>
> > > > > > <h1>Add Student Record</h1>
>
> > > > > > <?php echo $form->create('Student'); ?>
>
> > > > > > <?php
> > > > > > echo $form->input('id', array('label' => 'Student Number:
> > '));
> > > > > > echo $form->input('studentname', array('label' => 'Student
> > > > > > Name: '));
> > > > > > echo $form->input('studentdob', array('label' => 'Student
> > Date
> > > > > > of Birth: '));
> > > > > > echo $form->input('course', array('label' => 'Current
> > Course:
> > > > > > '));
> > > > > > ?>
>
> > > > > > <?php echo $form->end('Insert'); ?>
>
> > > > > > except that the id component of theformdoesn't display at all....
>
> > > > > > When I insert the record, everything goes in correctly, except
> > > > > > obviously the the 'id'. The 'id' is set as the primary key for
> > the
> > > > > > table, although I have toggled this. Also, I would have
> > preferred to
> > > > > > have the 'id' labelled something like 'studentnumber', but
> > theview
> > > > > > option wouldn't work when I had it setup this way.
>
> > > > > > Many thanks,
> > > > > > Damo
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake
PHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---