13. april 2004 - 21:07
Der er
5 kommentarer og 1 løsning
Nyheds-prioritet - hvordan gøres det nemt?
okay jeg har en stak nyheder i min databasen. Lige nu bliver de bare hentet ud, sorted by id. Det jeg egentligt gerne vil kunne, er fx hvis jeg har følgende nyheder: test1 test2 test3 test4 test5 så vil jeg gerne kunne "flytte rundt på dem" som jeg har lyst til. Dvs jeg vil gerne kunne flytte fx test3 et tak op eller ned..
Annonceindlæg fra Deloitte
Slettet bruger
13. april 2004 - 21:11
#1
Tag et kig på denne kode som jeg selv bruger til at sortere undersider i et CMS <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <style> html, body, button, table, div, input, select, fieldset { font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 11px; white-space: nowrap; } body { background-color: #F2F4F3; } .knap { background-image: url('billeder/knap_bg.gif'); background-color: #FFFFFF; border: 1px solid #808E9F; font-size: 8pt; color: #35475D; font-weight: bold; cursor:hand; height: 18px; !important } </style> <? include('../db.php'); if($_REQUEST['gem'] == 'ja') { $sortering = explode(',',$_POST['skjultFelt']); while (list($key, $val) = each($sortering)) { if (preg_match ( "/(\\d+):/i", $val, $res)) { $tal = $res[1]; } $gem_val = ereg_replace('[0-9]+:','', $val); $sql = 'UPDATE ' . $kundenavn . '_dokumenter SET sortering="' . ($key+1) . '" WHERE id="' . $tal . '"'; $result = mysql_query($sql) or die(mysql_error()); } } ?> <script type="text/javascript"> function _CloseOnEsc() { if (event.keyCode == 27) { window.close(); return; } } function Init() { document.body.onkeypress = _CloseOnEsc; } </script> <script> function checkSel ( frm ) { sel = frm.kategori.selectedIndex; selo = frm.kategori.options; if ( 0 > sel ) { alert( "Du skal vælge en kategori først" ); return false; }; return true; }; //end chackSel ( Form object ) -> boolean function checkDest ( dest ) { if ( 0>dest || dest >= selo.length ) { alert( "Kategorien kan ikke flyttes derhen" ); return false; }; return true; }; //end checkDest ( integer ) -> boolean function ombyt ( fra, til ) { var tmpTxt = selo[fra].text; selo[fra].text = selo[til].text; selo[til].text = tmpTxt; var tmpVal = selo[fra].value; selo[fra].value = selo[til].value; selo[til].value = tmpVal; return til; }; //end ombyt ( integer, integer ) function flytOp( frm ) { if ( checkSel( frm ) && checkDest( sel-1 ) ) frm.kategori.selectedIndex = ombyt( sel, sel-1 ); pakResultat(form1); frm.submit(); }; //end flytOp( form object ) function flytNed( frm ) { if ( checkSel( frm ) && checkDest( sel+1 ) ) frm.kategori.selectedIndex = ombyt( sel, sel+1 ); pakResultat(form1); frm.submit(); }; //end flytNed( form object ) function flytTil( frm, nr ) { if ( checkSel( frm ) && checkDest( nr-1 ) ) { while ( sel > nr-1 ) sel = ombyt( sel, sel-1 ); while ( nr-1 > sel ) sel = ombyt( sel, sel+1 ); frm.kategori.selectedIndex = sel; }; }; //end flytTil( form object, integer ) function pakResultat (frm) { var skj = ""; selo = frm.kategori.options; for (var i=0; selo.length>i; i++ ) skj += "," +selo[i].value +":" +selo[i].text; frm.skjultFelt.value = skj.substring(1); //alert ( frm.skjultFelt.value ); // debug; slet linien efter test return true; }; //end pakResultat ( form object ) </script> <head> <title>Omdøb side</title> </head> <body onload="Init();"> <form name="form1" action="sorter.php" method="post"> <input type="hidden" name="gem" value="ja"> <input type="hidden" name="id" value="<? echo $_REQUEST['id']; ?>"> <input type="hidden" name="skjultFelt"> <table width="400" align="center"><tr><td width="130" nowrap valign="top"><strong>Sorter undersider:</strong> </td><td width="100%"> <select name="kategori" style="width:100%" multiple size="20"> <? $sql = 'SELECT overskrift,id,sortering FROM ' . $kundenavn . '_dokumenter WHERE id > 0 AND ejerid = "' . $_REQUEST['id'] . '" ORDER BY sortering, id ASC'; $result = mysql_query($sql); while($row = mysql_fetch_array($result)) { echo '<option value="' . $row['id'] . '"'; if($row['id'] == $_POST['kategori']) echo ' selected'; echo '>' . $row['overskrift'] . '</option>'; } ?> </select> </td></tr> <tr><td></td><td><button onclick="flytOp(this.form)" style="width:80px;vertical-align:top" class="knap"><span style="margin-top:1px;height:19px">Flyt op </span><span style="margin-top:1px;height:19px"><img src="billeder/pilop.gif"></span></button> <button onclick="flytNed(this.form)" style="width:80px;vertical-align:top" class="knap"><span style="margin-top:1px;height:19px">Flyt ned </span><span style="margin-top:1px;height:19px"><img src="billeder/pilned.gif"></span></button></td></tr></table> </form> </body> </html>
13. april 2004 - 21:37
#2
hmm jeg har lidt svært ved at danne mig et overblik, kunne jeg få dig til at skrive en liste over hvilke felter du har for hver nyhed i din database?
Slettet bruger
13. april 2004 - 21:53
#3
Som sagt er det ikke nyheder, men sider. Det gør dog ingen forskel, det interessante her er feltet sortering som bare er af typen INT (10)
13. april 2004 - 22:16
#4
okay, desværre kom IRL mig lidt i vejen for at teste nu, men det ser interessant ud, så lav svar for points :P