kleines problem mit javascript (Fortsetzung)
hallo zusammen,
ich bin offensichtlich eine absolute null in javascript, wobei ich nicht alleine zu sein scheine, denn nachdem ich mehrere anfragen in andere foren gestellt habe (in frankreich und US) bleibt mir nur noch wenig hoffnung.
das problem ist folgendes:
ich habe eine seite die insgesamt 7 tage der woche darstellt, wobei jeder tag in viertelstunden unterteilt ist. jede viertelstunde wird durch ein graues bild dargestellt.
ich habe nun ein select, wo eine person ausgesucht wird. dieser person wird nun eine farbe zugeordnet und durch klicken der viertelstunden, wird das bild der entsprechenden farbe gezeigt. soweit sogut. das untengezeigt script funktioniert soweit.
das problem ist nun, dass ich als bindeelement zwischen PHP und javaScript ein cookie gewählt habe, was sich letztendlich als unglücklich herausstellt, denn ich schaffe es einfach nicht, das cookie wieder zu löschen, denn das cookie MUSS beim laden der seite (sei es durch laden oder durch F5) leer sein.
also habe ich optiert (nach langem suchen) für ein unsichtbares element, das jeweils von javaScript zur weiteren kontrolle herangezogen wird.
wie man aus dem script ersehen kann, ist der inhalt immer ein 2-dimesionales array indem jedes element jeweils in einem array den namen und die zugeordnete farbe festgehalten wird.
die frage ist: wie sind die jeweiligen funktionen getcookie() und controle_affect_color() zu ändern, dass sie nicht auf ein cookie, sondern auf ein unsichtbares html-tag greifen.
hier das script:
ich bin für jede hilfe dankbar und danke im voraus!
hallo zusammen,
ich bin offensichtlich eine absolute null in javascript, wobei ich nicht alleine zu sein scheine, denn nachdem ich mehrere anfragen in andere foren gestellt habe (in frankreich und US) bleibt mir nur noch wenig hoffnung.
das problem ist folgendes:
ich habe eine seite die insgesamt 7 tage der woche darstellt, wobei jeder tag in viertelstunden unterteilt ist. jede viertelstunde wird durch ein graues bild dargestellt.
ich habe nun ein select, wo eine person ausgesucht wird. dieser person wird nun eine farbe zugeordnet und durch klicken der viertelstunden, wird das bild der entsprechenden farbe gezeigt. soweit sogut. das untengezeigt script funktioniert soweit.
das problem ist nun, dass ich als bindeelement zwischen PHP und javaScript ein cookie gewählt habe, was sich letztendlich als unglücklich herausstellt, denn ich schaffe es einfach nicht, das cookie wieder zu löschen, denn das cookie MUSS beim laden der seite (sei es durch laden oder durch F5) leer sein.
also habe ich optiert (nach langem suchen) für ein unsichtbares element, das jeweils von javaScript zur weiteren kontrolle herangezogen wird.
wie man aus dem script ersehen kann, ist der inhalt immer ein 2-dimesionales array indem jedes element jeweils in einem array den namen und die zugeordnete farbe festgehalten wird.
die frage ist: wie sind die jeweiligen funktionen getcookie() und controle_affect_color() zu ändern, dass sie nicht auf ein cookie, sondern auf ein unsichtbares html-tag greifen.
hier das script:
HTML:
<html>
<head>
<script language="javascript" type='text/javascript'>
var perscol = -1;
var last_attributed = -1;
var color = new Array();
var person = "";
var ptitle = '';
var col_last = getCookie("colors[last]");
var temp = 0;
if (col_last!='') last_attributed = col_last;
function getCookie(name) {
if (document.cookie.length>0) {
start = document.cookie.indexOf(name+"=");
pos = start+name.length+1;
if (start != 0) {
start = document.cookie.indexOf("; "+name+"=");
pos = start+name.length+3;
}
if (start != -1) {
start = pos;
end = document.cookie.indexOf(";",start);
if (end == -1) end = document.cookie.length;
return unescape(document.cookie.substring(start,end));
}
}
return '';
}
function controle_affect_color(val,name) {
if (val != 0) {
if (color[val] == null) {
var col_attrib = getCookie("colors["+name+"]");
if (col_attrib!='') color[val] = col_attrib;
else {
color[val] = parseInt(last_attributed)+1;
document.cookie = "colors["+name+"]="+color[val]+";";
last_attributed++;
document.cookie = "colors[last]="+last_attributed+";";
}
}
ptitle=name;
return color[val];
}
ptitle='';
return -1;
}
function maj_img(id,obj,name,src) {
var div=document.getElementById("total");
div.innerHTML="<PRE>HEURES ALLOUEES:\n";
if ((name!=obj.alt)&&(person!=0)) {
document.getElementById(id).value=person;
obj.src="img/plan/"+src+".png";
if(obj.alt=='') temp+=25;
obj.alt=name;
obj.title=name;
} else {
document.getElementById(id).value=-1;
obj.src="img/plan/-1.png";
obj.alt='';
obj.title='';
if (temp>0) temp-=25;
}
if (temp/100>0) div.innerHTML+=Math.floor(temp/100)+"h"+temp%100+"min</PRE>";
else div.innerHTML+=temp+"min</PRE>";
}
</script>
<style type="text/css">
.day {
text-align: center;
vertical-align: top;
font-size: 60%;
font-weight: bold;
}
.spc {
font-size: 50%;
}
img {
border: 0;
vertical-align: middle;
}
form {
margin: 0px;
padding: 0px;
}
</style>
</head>
<body><center>
<div id="color" style="visibility:hidden;"></div>
<form method="post">
<select name="pers" onChange="person=this.options[this.selectedIndex].value;perscol=controle_affect_color(this.value,this.options[this.selectedIndex].text);">
<option value="0" selected>----</option>
<option value="10">Rémi</option>
<option value="20">Marcel</option>
<option value="30">Michel</option>
<option value="40">Christiane</option>
<option value="50">Julien</option>
<option value="60">Matthieu</option>
<option value="70">Vincent</option>
<option value="80">Stéphane</option>
<option value="90">Marc</option>
</select>
<br /><br /><br />
<table summary="" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="day" style="height:15px;">Hrs-></td>
<?php
if (isset($_POST['tab'])) {
print_r($_POST['tab']);
echo "<br>";
print_r($_COOKIE['colors']);
}
else for($j=0;$j<1;$j++) for($i=0;$i<96;$i++) $l[$j][$i]=-1;
$jrs = array("Lun","Mar","Mer","Jeu","Ven","Sam","Dim");
for($k=0;$k<24;$k++) echo '<td class="day" colspan="5">'.$k.'</td>';
echo "\r</tr>";
for($j=0;$j<1;$j++) {
echo '<tr>
<td valign="middle">'.$jrs[$j].' </td>';
for($i=0;$i<96;$i++) {
if ($i%4==0) echo '<td class="spc"> </td>';
$color = -1;
if (isset($_COOKIE['colors'])) {
$l[$j][$i] = trim($l[$j][$i]);
if (array_key_exists($l[$j][$i], $_COOKIE['colors']) !== false) $color = $_COOKIE['colors'][$l[$j][$i]];
}
echo '<td valign="middle">
<input id="'.$j.$i.'" type="hidden" name="tab['.$j.']['.$i.']" value="'.$l[$j][$i].'" />
<img src="img/plan/'.$color.'.png" onClick="maj_img(\''.$j.$i.'\',this,ptitle,perscol);" alt="" title="" />
</td>';
}
echo "\r</tr>\n\t";
}
?>
</table>
<br />
<input type="submit" value="enregistrer" />
</form>
<div id='total' style="float:center; position:relative; center:75px;"></div>
</center></body>
</html>
ich bin für jede hilfe dankbar und danke im voraus!
Zuletzt bearbeitet: