Jump to content

jneaum

Members
  • Posts

    2
  • Joined

  • Last visited

Reputation

0 Neutral

About jneaum

  1. Hello Just signed up on recommendation of colleague. My problem is similar to 46774-html-table-change-cell-colour-value-entered.html The cell colour is not based only the cell contents so cannot use if (this.value== etc )...it is based on the difference in values of two fields returned by the MySql query (sql snippet below) which is used to populate the cells. The fields are numeric representations ("ordinals") of a "current grade" and a "minimum expected grade"; so for example, if the ordinal difference is greater than +2, cell is RED and so on. I am using PHP and MySql. I use a java "onchange" script which calls an AJAX script (identified by input parameter url) to update the MySql database, which works fine When opening the page, I am able to set the colour correctly using CSS class ($grade_class_cag) and a routine which compares the ordinals for each cell and sets the class. But...... I want to change the colour immediately and also set the value of another cell on the same HTML row, depending on the ordinal difference. I can get the colour to change immediately if I reload the page, but that loses focus, which is unacceptable - so I have added a "refresh" button which is a sort of "quarter-way-house". I have thus far been unable to find a way of either 1>> After reload, resetting the focus to the next enterable field in the row or 2>> recalculating the value of the ordinal field which changes because of the user data entry/modification The HTML snippet which displays the cell is:- class="'.$grade_class_cag . '" OnChange="jsUpdateGradeCAG(\''.$url.'\', \'SCCurrentGrade\', this.value, \''.$sgc_row['ID'].'\' );" title="Enter the Current Assessed Grade for the student" />'; /****************************************************************************************/ /* Populate option value list from coursetype grade table (05) */ /****************************************************************************************/ query = " SELECT * FROM {$_SESSION ['prf_coursetypegrade'] } WHERE CGCTCode = '{$tg_row['TGCTCode']}' ORDER BY CGUCASPts ASC "; if ($ctg_result = @mysql_query ($query)) { while ($ctg_row = mysql_fetch_array ($ctg_result, MYSQL_ASSOC)) { echo '' . $ctg_row['CGGrade'] . ''; } } else { die ('Could not retrieve permitted grades for : ' . $tg_row['TGCode'] . mysql_error()); }; echo '' .$sgc_row['CAG'] . ' The SQL snippet which calculates the ordinals, using Sub Selects is:- (SELECT ab.CBGrade AS MTG FROM prf_vw_student_all AS st_mtg , prf_alpsboundaries AS ab , prf_vw_teachinggroup AS tg_mtg WHERE tg_mtg.ID = {$_POST['txt_tg_id']} AND tg_mtg.TGCTCode = ab.CBCTCode AND st_mtg.ID = st.ID AND st.STALISAGCSE >= ab.CBLoVal AND st.STALISAGCSE < ab.CBHiVal ) AS ss_mtg, (SELECT ctg.CGOrdinal FROM prf_coursetypegrade ctg, prf_vw_teachinggroup tg WHERE tg.ID = {$_POST['txt_tg_id']} and ctg.CGCTCode = tg.TGCTCode AND ctg.CGGrade = ss_mtg ) AS ss_mtg_ordinal, sgc.SCCurrentGrade AS CAG, (SELECT ctg.CGOrdinal FROM prf_coursetypegrade ctg, prf_vw_teachinggroup tg WHERE tg.ID = {$_POST['txt_tg_id']} and ctg.CGCTCode = tg.TGCTCode AND ctg.CGGrade = sgc.SCCurrentGrade ) AS ss_cag_ordinal, "st.ID" is the primary key of the student table which the main select is retrieving The routine then uses ss_cag_ordinal and ss_mtg_ordinal to work out what the colour should be. I would welcome any pointers. Thanks PS - I see that indentation tabs have disappeared on posting.
×
×
  • Create New...