Det här felet går långt över huvudet på mig... Jag har helt enkelt inte tillräcklig vana av att felsöka i PHP-kod för att fatta vad som händer. Jag är helt ställd. :x Jag försökt själv i två dar, men jag fattar ingenting!!!
Problemet
Jag har ett antal ledtrådar (till korsord). Framför varje är en checkbox och tanken är att om du kryssar i en (eller flera) så ska sidan laddas om med en ledtråd för de ikryssade. När sidan laddar om, är de inte längre ikryssade och inga ledtrådar syns! :(
Längst ner sitter en till checkbox. Kryssar du i den ska alla ledtrådar visas. (För enkelhetens skull.) DETTA fungerar däremot!!! Kryssar man här så fungerar det, kryssar man ur den, så försvinner ledtrådarna. Klockrent!
MEN, ALLA checkboxar skapas i samma metod, ALLA checkboxar kollas i samma metod!!! Hur ända in i ..... kan det då funka för EN och inga andra????!!!!
Jag har förenklat koden så mycket jag kan (vågar) utan att tappa funktionalitet, så sidan är ful som stryk. Blir ändå en hel del rader är jag rädd...
//dummy.php - sidan som skrivs in i webbläsaren
<?php
include_once("/home/aasah/www/dummyTakeCW.php");
error_reporting(E_ALL);
$name = "My very first Crossword <BR>";
$idea = "me";
$about = "<u>CW Theme:</u> Pets & Friends <BR>";
$CW = "http://www.tydal.nu/aasah/FirstEver.jpg";
$corrCW = "fil.jpg"; //hidden from www-root /home/aasah pre-pends later
$clues = array( "a" => "ACROSS",
"A 9-10" => "A clue.",
"B 1-8 " => "Another clue",
"d" => "DOWN",
" 2 B-L" => "Clue down",
" 4 G-J" => "Clueless");
$hints = array( "a" => "ACROSS",
"A 9-10" => "Hint 1.",
"B 1-8 " => "Hint 2.",
"d" => "DOWN",
" 2 B-L" => "Hint 3.",
" 4 G-J" => "Last Hint.");
$corrs = array( "a" => "ACROSS",
"A 9-10" => "!",
"B 1-8 " => "?",
"d" => "DOWN",
" 2 B-L" => "CS",
" 4 G-J" => "FD");
printCW($name, $idea, $about, $CW, $corrCW, $clues, $hints, $corrs);
?>
</body></html>
//dummyTakeCW.php - sidan som gör jobbet
<head>
<meta name="robots" content="noindex">
<title> Solve a crossword! </title>
</head>
<body><?php
function wasChosen($name, $val) {
return (isSet($_POST["$name"]) && $_POST["$name"] == $val);
}
function inCheckBox($pos) {
if (wasChosen($pos, 1))
return "<INPUT TYPE=CHECKBOX NAME=".$pos." VALUE=1 checked>";
else return "<INPUT TYPE=CHECKBOX NAME=\"$pos\" VALUE=1 >";
}
//Funkar för all men inte för övriga!!! ???
function printCW($name, $idea, $about, $CW, $corrCW, $clues, $hints, $corrs) {
$me = $_SERVER['PHP_SELF'];
echo "<H1>$name</H1>";
echo "Crossword created by <b>$idea</b>. <BR><BR>";
echo "<i>$about</i><BR><BR>";
$hintsWanted = FALSE;
if (wasChosen("shyCW", 1)) { //Blev ju vald indirekt
if (wasChosen("Hint", "Get hints! "))
$hintsWanted = TRUE;
if (wasChosen("A 9-10", 1))
echo "Wants clues for A 9-10";
if (wasChosen("4 G-J", 1))
echo "Wants clues for 4 G-J";
if (wasChosen("all", 1))
echo "Wants clues for all.";
}
echo "<P><img src=\"$CW\"><BR><BR>";
echo "<FORM METHOD=POST ACTION=\"$me\" >";
foreach ($clues as $pos => $clue) {
if ($pos == "a" || $pos == "d")
echo "</P><P><b>$clue</b><BR>";
else {
echo inCheckBox($pos)." $pos : $clue<BR>";
if (wasChosen($pos, 1) || wasChosen("all", 1))
echo "<i>$hints[$pos]</i><BR>";
}
}
echo "</p>";
echo "<P>".inCheckBox("all")."Hints wanted on every clue, please!</P>";
echo "<INPUT TYPE=HIDDEN NAME=\"shyCW\" VALUE=1>";
echo "<i>Is the crossword too hard? Are you stuck?
By checking the box in front of any number of clues, and hitting the
button below, you'll get some additional hints to the checked clues.
Checking the last box <b>SHOULD BE </b> equivalent to
checking all clues.</i><BR>";
echo "<INPUT TYPE=SUBMIT NAME=\"Hint\" VALUE=\"Get hints! \"><BR><BR>";
echo "</form><BR>";
echo "<BR><BR><BR>";
echo "<P>All coding, text, crosswords, quizzes as well as the chosen layout and
graphics are copyright (c) this site, unless
otherwise clearly stated.
Ingen bra formulering ... senare problem.</P>";
}
?>
Tacksam för hjälp! :x
Red: Plockade bort lite ":)":r som gjorde texten orimligt bred.