Jump to content

Archived

This topic is now archived and is closed to further replies.

kenjenn

populating radio button form from database

Recommended Posts

I'm trying to populate a radio-button form from MySQL but can't seem to get the right php worked out to display.  Here's what I've got:

echo "<form name=attendance action=$_SERVER[PHP_SELF] method=POST>";
echo '<input type=submit value="Submit Changes">';
$i=0;
echo '<table>';
while ($row=mysql_fetch_row($result1)) {
$IDstudent=$row[0];
$name = $row[1];
$status = $row[2];
echo '<tr><input name=studentid['.$i.'] type=hidden value=' . $IDstudent . '><td>' . $name . '</td><td>' . $status . '</td><td><input name=status['.$i.'] type=radio value="P" <?php if($status=="P"){echo "checked"};?>>Present</td><td><input name=status['.$i.'] type=radio value="T" <?php if($status=="T"){echo "checked"};?>>>Tardy</td><td><input name=status['.$i.'] type=radio value="U" <?php if($status=="U"){echo "checked"};?>>Unexcused Absence</td><td><input name=status['.$i.'] type=radio value="E" <?php if($status=="E"){echo "checked"};?>>>Excused Absence</td></tr>';
++$i;
}

Any help on getting the IF statement to work to "Check" the appropriate radio button?

Thanks.

Share this post


Link to post
Share on other sites
You didn't put a $ infront of your "status", also, you don't need PHP tags in an echo, try this:

[code]<?php
echo "<form name=attendance action=$_SERVER[PHP_SELF] method=POST>";
echo '<input type=submit value="Submit Changes">';
$i=0;
echo '<table>';
while ($row=mysql_fetch_row($result1)) {
$IDstudent=$row[0];
$name = $row[1];
$status = $row[2];
echo '<tr><input name=studentid['.$i.'] type=hidden value=' . $IDstudent . '><td>' . $name . '</td><td>' . $status . '</td><td><input name=$status['.$i.'] type=radio value="P" if($status=="P"){echo "checked"};>Present</td><td><input name=$status['.$i.'] type=radio value="T" if($status=="T"){echo "checked"};>Tardy</td><td><input name=<?=$status['.$i.'] type=radio value="U" if($status=="U"){echo "checked"};>Unexcused Absence</td><td><input name=status['.$i.'] type=radio value="E" if($status=="E"){echo "checked"};>Excused Absence</td></tr>';
++$i;
}
?>[/code]

Share this post


Link to post
Share on other sites
First of all before posting make sure your text is between the code tags so the syntax is colored,
second of all add some whitespace for readability... thx ;) ;D

[code]
<?php
echo "<form name='attendance' action='{$_SERVER[PHP_SELF]}' method='POST'>";
echo "<input type='submit' value='Submit Changes'>";

$i=0;
echo '<table>';

while ($row=mysql_fetch_row($result1)) {
 $IDstudent=$row[0];
 $name = $row[1];
 $status = $row[2];
 
 echo "
 <tr>
   <td>
     <input name='studentid[{$i}]' type='hidden' value='{$IDstudent}'>
   </td>
   <td>
     {$name}
   </td>
   <td>
     {$status}
   </td>
   <td>
     <input name='status[{$i}]' type='radio' value='P'" . (strtolower($status) == 'p') ? "checked='checked'" : ''"> Present
   </td>
   <td>
     <input name='status[{$i}]' type='radio' value='T'" . (strtolower($status) == 't') ? "checked='checked'" : ''"> Tardy
   </td>
   <td>
     <input name='status[{$i}]' type='radio' value='U'" . (strtolower($status) == 'u') ? "checked='checked'" : ''"> Unexcused Absence
   </td>
   <td>
     <input name='status[{$i}]' type='radio' value='E'" . (strtolower($status) == 'e') ? "checked='checked'" : ''"> Excused Absence
   </td>
 </tr>'";
$i++;
}

echo "</table>";
?>
[/code]

Share this post


Link to post
Share on other sites
ignace, thanks for the tips.  I cut & pasted your code, but when I ran it I received the following parse error:

Parse error: parse error, unexpected '"', expecting ',' or ';' in ....

Any ideas?

Share this post


Link to post
Share on other sites
Did that and same error.  Current code is:

[code]
<?php
echo "<form name='attendance' action='{$_SERVER[PHP_SELF]}' method='POST'>";
echo "<input type='submit' value='Submit Changes'>";

$i=0;
echo '<table>';

while ($row=mysql_fetch_row($result1)) {
  $IDstudent=$row[0];
  $name = $row[1];
  $status = $row[2];
 
  echo "
  <tr>
    <td>
      <input name='studentid[{$i}]' type='hidden' value='{$IDstudent}'>
    </td>
    <td>
      {$name}
    </td>
    <td>
      {$status}
    </td>
    <td>
      <input name='status[{$i}]' type='radio' value='P'" . (strtolower($status) == 'p') ?

"checked='checked'" : ''"> Present
    </td>
    <td>
      <input name='status[{$i}]' type='radio' value='T'" . (strtolower($status) == 't') ?

"checked='checked'" : ''"> Tardy
    </td>
    <td>
      <input name='status[{$i}]' type='radio' value='U'" . (strtolower($status) == 'u') ?

"checked='checked'" : ''"> Unexcused Absence
    </td>
    <td>
      <input name='status[{$i}]' type='radio' value='E'" . (strtolower($status) == 'e') ?

"checked='checked'" : ''"> Excused Absence
    </td>
  </tr>";
$i++;
}

echo "</table>";


?>[/code]

Share this post


Link to post
Share on other sites
You need semi-colons at the end of the PHP code...

Your lines that end like this:
[code=php:0]? "checked='checked'" : ''">
[/code]

Need to have a semi colon after the php, before the last double quotes... like this:
[code=php:0]? "checked='checked'" : '';">
[/code]

Regards
Huggie

Share this post


Link to post
Share on other sites
no more errors, but all I get is a row of:

checked='checked'checked='checked'checked='checked'checked='checked' etc.

Share this post


Link to post
Share on other sites
I'd say heredoc is what you need here...

Where you start to echo the content, change [b]echo "[/b] to [b]echo <<<HTML[/b] and then add [b]HTML;[/b] above [b]$i++[/b].

Regards
Huggie

Share this post


Link to post
Share on other sites
nope.  now I get 15 "; (double-quote semi-colon) above my empty table with 15 rows.

Share this post


Link to post
Share on other sites
thanks for helping.  full code:

[code]
<?php
echo "<form name='attendance' action='$_SERVER[PHP_SELF]' method='POST'>";
echo "<input type='submit' value='Submit Changes'>";

$i=0;
echo '<table>';

while ($row=mysql_fetch_row($result1)) {
  $IDstudent=$row[0];
  $name = $row[1];
  $status = $row[2];
 
  echo <<<HTML
  <tr>
    <td>
      <input name='studentid[{$i}]' type='hidden' value='{$IDstudent}'>
    </td>
    <td>
    {$name}
    </td>
    <td>
      {$status}
    </td>
    <td>
      <input name='status[{$i}]' type='radio' value='P'" . (strtolower($status) == 'p') ?

"checked='checked'" : '';"> Present
    </td>
    <td>
      <input name='status[{$i}]' type='radio' value='T'" . (strtolower($status) == 't') ?

"checked='checked'" : '';"> Tardy
    </td>
    <td>
      <input name='status[{$i}]' type='radio' value='U'" . (strtolower($status) == 'u') ?

"checked='checked'" : '';"> Unexcused Absence
    </td>
    <td>
      <input name='status[{$i}]' type='radio' value='E'" . (strtolower($status) == 'e') ?

"checked='checked'" : '';"> Excused Absence
    </td>
  </tr>";
HTML;
$i++;
}

echo "</table>";


?>[/code]

Share this post


Link to post
Share on other sites
try[code]<?php
echo "<form name='attendance' action='$_SERVER[PHP_SELF]' method='POST'>";
echo "<input type='submit' value='Submit Changes'>";
$i=0;
echo '<table>';
while ($row=mysql_fetch_row($result1)) {
  $IDstudent=$row[0];
  $name = $row[1];
  $status = $row[2];
  echo "
  <tr>
    <td>
      <input name='studentid[{$i}]' type='hidden' value='{$IDstudent}'>
    </td>
    <td>
    {$name}
    </td>
    <td>
      {$status}
    </td>
    <td>
      <input name='status[{$i}]' type='radio' value='P'";echo $x =(strtolower($status) == 'p') ? "checked='checked'" : '';
      echo "> Present
    </td>
    <td>
      <input name='status[{$i}]' type='radio' value='T'";
      echo $x =(strtolower($status) == 't') ? "checked='checked'" : '';
      echo "> Tardy
    </td>
    <td>
      <input name='status[{$i}]' type='radio' value='U'";
      echo $x = (strtolower($status) == 'u') ? "checked='checked'" : '';
      echo "> Unexcused Absence
    </td>
    <td>
      <input name='status[{$i}]' type='radio' value='E'";
      echo $x = (strtolower($status) == 'e') ? "checked='checked'" : '';
      echo "> Excused Absence
    </td>
  </tr>";
$i++;
}
echo "</table>";
?>[/code]

Share this post


Link to post
Share on other sites

×

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.