• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Fehler bei Script zur Berechnung von Zufallsgrößen

Status
Für weitere Antworten geschlossen.

187fm.net

Neues Mitglied
Hallo,
ich habe ein Script zur berechnung von Zufallsgrößen geschrieben! Dabei kann der Benutzer über die Eingabe der Anzahl der Auswahlmöglichkeiten(checkboxen) ein dynamisches Formular erstellen, eine Art Lottoscript, wenn man so will! Da es aber extrem nervig ist evtl. 50 Kreuzchen zu machen möchte ich die checkboxen per button zufällig auf checked setzen, was allerdings nicht klappt (im folgenden Script sind die Problemstellen kommentiert, die funktion zufall & de´r Button mit der ID "btn2")

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
  </head>
  <body>
 
<style type="text/css"> 
</style>
 
<script type="text/javascript"> 
 
function fakultaet(zahl1) {
var i = 1,j=1;
var zahl = zahl1;
while(i<=zahl1) {
j=j*i;
i = i + 1;
}
return j; 
}
 
function $(x) {
return document.getElementById(x);
}
 
function comb(n,k) {
 
var ergebnis = (fakultaet(n))/(fakultaet(n-k)*fakultaet(k));
document.getElementById('result').innerHTML = "Es gibt " + ergebnis + " M&ouml;glichkeiten";
return false;
}
 
function test1() {
alert("test2");
return false;
}
 
function checkanz() {
var ges_anz = $('sz1').value;
var anz = $('sz2').value;
for (i=1;i<=ges_anz;i++) {
  if ($('id' + i).checked) anz--; 
}
if (anz<=0) {
for (i=1;i<=ges_anz;i++) {
  if (!$('id' + i).checked) $('id' + i).disabled = true; 
}
} else {
for (i=1;i<=ges_anz;i++) {
  $('id' + i).disabled = false; 
}
}
}
 
function rand (min, max) {
 return Math.floor(Math.random() * (max - min + 1)) + min;
}
function in_array(item,arr) {
for(p=0;p<arr.length;p++) if (item == arr[p]) return true;
return false;
}
 
function zufall(){ //An dieser Funktion hängt's
var zufall = new Array();
for(var l=k;l>0;l--){
zufallszahl=rand(0,n);
if(!in_array(zufallszahl,zufall)){
zufall.push(zufallszahl);
document.getElementById('id' + zufallszahl).checked="checked";}
else{
l++}
}
}
 
function getform(a,b) {
 
if(b>a){ 
alert('Fehler');
exit(); }
if(a>200){ 
alert('Fehler');
exit(); }
var z=0;
var str='';
str = '<form name="formular" id="formular" action="report.php" method="post"><table><tr>';
while(a>0){
str = str + '<td><input type="checkbox" id="id' + a + '" name="name[]" value="' + a +'">' + a + '</td>';
if((z % 10)==9) str = str + '</tr>';
if(((z++ % 10)==9) && (a>3)) str = str + '<tr>';
a--;
 }
str = str + '</tr></table><input type="hidden" name="submit1" value="' + document.getElementById("sz1").value + '"><input 
type="hidden" name="submit2" value="' + document.getElementById("sz2").value + '"><button 
id="btn">berechnen</button></form><button id="btn2" onclick="zufall();return false;">zufall</button>'; // ...und an diesem Button (btn2)
document.getElementById('form').innerHTML = str;
for (i=1;i<=$('sz1').value;i++) {
  $('id' + i).onclick=checkanz;
}
 
}
 
 
</script>
 
 
<div id="div1"><form name="sz">
 <input type="text" name="sz1" id="sz1" value="Aus n Zahlen..." onfocus="this.value=''">
 <input type="text" name="sz2" id="sz2" value="... k ausw&auml;hlen" onfocus="this.value=''">
 <button id="btn1" 
onclick="getform(parseInt(document.getElementById('sz1').value),parseInt(document.getElementById('sz2').value)); return 
false;">senden</button>
</form></div>
<div id="result"></div>
<div id="form"></div>
 
  </body>
</html>

hier nochmal das Script im Web

wäre nett wenn mir jamand 'n Tipp geben könnte woran die Sache hängt, bin für jede Antwort dankbar!

mfg. M.Döring
 
Nutzt du Firefox? Da gibt es unter Extras -> Fehlerkonsole eine wunderbare Hilfe zum Debuggen. Dann wirst du nämlich sehen, dass in deiner Funktion "zufall" das k garnicht definiert ist.
 
Firebug (Firefox Extension) ist ebenfalls sehr zu empfehlen.

Ich bekomme jetzt diese Fehlermeldung:

Code:
missing ; before statement
http://www.187fm.net/zufall.php?sz1=12&sz2=3
Line 95

JavaScript unterstützt offenbar keine...

Code:
str = ' "physischen" Zeilenumbrüche
in Strings.';

PS: Programmierer rücken ihren Code übrigens meist ein.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben