wizardry Posted May 17, 2011 Share Posted May 17, 2011 how do i get this to loop through all record sets instead of just showing one record set on click for sub query? <script type="text/javascript"> <!-- function toggle_visibility(id) { var e = document.getElementById(id); if(e.style.display == 'block') e.style.display = 'none'; else e.style.display = 'block'; } //--> </script> </head> <body> <?php //c.sfk={$row['sfk']} mysql_select_db($database_Del_Comments, $Del_Comments); $result = sprintf("SELECT a.Id, a.Type, a.Dates, a.UIdFk as UIdFk, b.Id as Did, b.comment as Comment, b.dates as Day, b.sfk as Sfk , aes_decrypt(e.ProfileName, '$Ukey') as Name, substr(i.Path, 4) as Path FROM asstatusupdate as a left join asstatusdata as b on a.id = b.sfk right join ASWebInfo as e on e.Uidfk = a.uidfk right join ASManyAlbums as f on f.UserId=a.uidfk right join ASAlbums as g on f.AlbumId=g.Id right join ASTitle as h on g.Id=h.AlbumId right join ASData as i on h.Id=i.TitleId where a.uidfk in (select friendid from asfriends where uidfk0='1') and i.DefaultProfilePic='Y' order by dates desc; "); $statusUpdate = mysql_query($result, $Del_Comments) or die(mysql_error()); $category_id = ''; echo '<table align="center" width="40%" border="3" cellpadding="0" cellspacing="0">'; while($row = mysql_fetch_array($statusUpdate)) { if ($row['Id'] != $category_id) { $category_id = $row['Id']; // grab table variables $Type = $row['Type']; $Dates = $row['Dates']; $Comment = $row['Comment']; $Name = $row['Name']; $Path = $row['Path']; $FriendId = $row['UIdFk']; $SFK = $row['Sfk']; echo '<tr>'; echo ' <td align="center">', $Name, '<br><a href="source/source.php?FriendId=',$FriendId,'"><img src="',$Path,'" height="120" width="120" align="middle" border="3" /></a></td>'; echo ' <td align="center"> ',$Dates,'<br><br>',$Type,'<br/>',$Comment,'</td>'; echo ' <td>',$category_id,'</td>'; echo ' <td>',$SFK,'</td>'; echo '</tr>'; } // end of if mysql_select_db($database_Del_Comments, $Del_Comments); $comments= sprintf("SELECT c.sfk as sfk1, c.UIdFk0, d.Memo as Memo, d.Date as Dates1, e.ProfileName, substr(i.Path, 4) as Path FROM asmanystatusupdate as c left join ascomments as d on d.id = c.cfk right join ASWebInfo as e on e.Uidfk = c.uidfk0 right join ASManyAlbums as f on f.UserId=c.uidfk0 right join ASAlbums as g on f.AlbumId=g.Id right join ASTitle as h on g.Id=h.AlbumId right join ASData as i on h.Id=i.TitleId where c.sfk={$row['Sfk']} AND c.uidfk0 in (select friendid from asfriends where uidfk0='1') and i.DefaultProfilePic='Y' order by dates desc; "); $statusComments = mysql_query($comments, $Del_Comments) or die(mysql_error()); while($user_row = mysql_fetch_array($statusComments)){ // test the query //if($row['sfk'] == $user_row['sfk']) { $Dates1 = $user_row['Dates1']; $Memo = $user_row['Memo']; $Name1 = $user_row['Name']; $Path1 = $user_row['Path']; $FriendId1 = $user_row['UIdFk0']; $SFK1 = $user_row['sfk1']; //row and cell for "outer" while echo '<tr>'; echo '<td colspan="4" style="padding-left:1em;">'; // display table echo '<a href="#0'."$SFK1".'" onclick="toggle_visibility(\'foo1'."$SFK1".'\');" ;return false\" style=\"position:relative\">Click here to show records</a>'; // to show comment records echo '<div id="foo1'."$SFK1".'"style="position:relative;display:none">'; // to show comment records echo '<table align="center" width="60%" border="3" cellpadding="0" cellspacing="0">'; echo '<tr>'; echo ' <td align="center">',$Name1,'<br/><a href="source/source.php?FriendId=',$FriendId1,'"><img src="',$Path1,'" height="120" width="120" align="middle" border="3" /></a></td>'; echo ' <td align="center" width="40%"> ',$Dates1,'<br/><br/><br/>',$Memo,'</td>'; echo ' <td>' ,$category_id, '</td>'; echo ' <td>',$SFK1,'</td>'; echo '</tr>'; echo '</table>'; echo '</div>'; // for comment results show query //end row and cell for outer while //echo '</td>'; //echo '</tr>'; echo '<form action="$editFormAction" method="post" name="form1" id="form1">'; echo '<a href="#'."$SFK1".'" onclick="toggle_visibility(\'foo'."$SFK1".'\');" ;return false\" style=\"position:relative\">Click here to toggle visibility of element #foo</a>'; echo '<div id="foo'."$SFK1".'"style="position:relative;display:none">';echo '<table align="center">'; echo '<tr valign="baseline">'; echo '<td nowrap="nowrap" align="right">Memo:</td>'; echo '<td><input type="text" name="Memo" value="" size="32" /></td>'; echo '</tr>'; echo '<tr valign="baseline">'; echo '<td nowrap="nowrap" align="right"> </td>'; echo ' <td nowrap="nowrap" align="right"> </td>'; echo ' </tr>'; echo '<tr valign="baseline">'; echo ' <td nowrap="nowrap" align="right"> SFK:' ."$SFK1". '</td>'; echo ' <td><input type="submit" value="Insert record" /></td>'; echo ' </tr>'; echo ' </table>'; echo '<input type="hidden" name="Id" value="" />'; echo '<input type="hidden" name="Id" value="" />'; echo ' <input type="hidden" name="SFk" value="' ."$SFK1". '" />'; echo ' <input type="hidden" name="MM_insert" value="form1" />'; echo '</form>'; echo '</div>'; } // end of if } // end of while loop }// end of main loop echo '</table>'; ?> Quote Link to comment Share on other sites More sharing options...
Psycho Posted May 17, 2011 Share Posted May 17, 2011 Use an onclick event to change the visibility of the table instead of the TDs. Just give the table an ID and create an object to invoke the toggle_visibility() function passing the table id. Quote Link to comment Share on other sites More sharing options...
wizardry Posted May 17, 2011 Author Share Posted May 17, 2011 i have the onclick function created already. it shows the results but only 1 result at a time. for instance their are 5 records it only shows 1 record. Quote Link to comment Share on other sites More sharing options...
Psycho Posted May 17, 2011 Share Posted May 17, 2011 As I said, you need to implement the onclick event to show/hide the table - not the individual records. Give the table an id (let's say "mytable"). Then implement an onclick trigger passing the table's ID as the parameter in that function call. Quote Link to comment Share on other sites More sharing options...
wizardry Posted May 17, 2011 Author Share Posted May 17, 2011 i've tried that with both the table and the div they both have id with the record number which make them unique considering that they are being looped until there are no more matching records. Niether of them work just single record display. Quote Link to comment Share on other sites More sharing options...
Psycho Posted May 18, 2011 Share Posted May 18, 2011 Why would you give the table an ID that has anything to do with the record IDs? You don't need to give the DIVs IDs since you aren't going to hide/sho those individually. You ONLY need an ID on the table and a single link to initiate the JS function. I'm giving you enough information to solve this yourself without writing the code for you. Quote Link to comment Share on other sites More sharing options...
wizardry Posted May 18, 2011 Author Share Posted May 18, 2011 i've tried what you've explained to me. here is the code that i used can you show me an example? thanks in advance for your help! echo '<a href="#0'."$SFK1".'" onclick="toggle_visibility(\'foo0'."$SFK1".'\');" ;return false\" style=\"position:relative\">Click here to show records</a>'; // to show comment records //echo '<div >'; // to show comment records echo '<table align="center" width="60%" border="3" cellpadding="0" cellspacing="0" id="foo0'."$SFK1".'"style="position:relative;display:none">'; [attachment deleted by admin] Quote Link to comment Share on other sites More sharing options...
Psycho Posted May 18, 2011 Share Posted May 18, 2011 You are missing the whole point. You are still trying to create separate IDs for each record to use for showing/hiding the data. You are making it more difficult than it needs to be. All you need is a single table that holds all the records and use the ID of that table to show/hide all the records at once. You already have the table, just add an ID to it and create a trigger to call the function. Change this $category_id = ''; echo '<table align="center" width="40%" border="3" cellpadding="0" cellspacing="0">'; while($row = mysql_fetch_array($statusUpdate)) { To this: $category_id = ''; echo "<a href=\"#\" onclick=\"toggle_visibility('THE_TABLE');\";return false\">Show/Hide the table</a>"; echo '<table id="THE_TABLE" align="center" width="40%" border="3" cellpadding="0" cellspacing="0">'; while($row = mysql_fetch_array($statusUpdate)) { Quote Link to comment Share on other sites More sharing options...
wizardry Posted May 18, 2011 Author Share Posted May 18, 2011 i've tried what you showed and that was for the wrong query of which that did work for the parent query. when i tried to move this to the above position of: echo '<tr>'; echo '<td colspan="4" style="padding-left:1em;">'; // display table echo '<a href="#0'."$SFK1".'" onclick="toggle_visibility(\'foo1'\');" ;return false\" style=\"position:relative\">Click here to show records</a>'; // to show comment records //echo '<div id="foo1'."$SFK1".'"style="position:relative;display:none">'; // to show comment records echo '<table align="center" width="60%" border="3" cellpadding="0" cellspacing="0" id="foo1">'; while($user_row = mysql_fetch_array($statusComments)){ my code went to the left side of the screen and was nolonger apart of the table. in my current design in order to have my data elements in one table ive had to use a nested table of which is in the subquery. thanks in advance for your help! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.