Javascript functie werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lord Gaga

Lord Gaga

08/07/2010 11:03:03
Quote Anchor link
Hallo,
ik heb een code waarmee je een alert kunt laten verschijnen wanneer je ene woord intypt op je toetsenbord (niet persé in een inputveldje etc.) maar omdat ik meerdere woorden wil gebruiken heb ik die in de database gezet en de code steeds opnieuw laten maken met de verschillende woorden (zie code). Maar alleen de cheat met het laatst toegevoegde woord werkt, de andere cheats werken gewoonweg niet. Hoe los ik dat op?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
$select
= "SELECT * FROM leden_gegevens WHERE gebruikersnaam = '".$_COOKIE['gebruikersnaam']."'";
$query = mysql_query($select)or die(mysql_error());
$list = mysql_fetch_object($query);
if ($list->status == "schouwer") {

$select = "SELECT * FROM leden_cheats";
$query = mysql_query($select)or die(mysql_error());
while($list = mysql_fetch_object($query)) {
?>


<script language="JavaScript">
var nav =navigator.appName;
var ns =(nav.indexOf("Netscape")!=-1);
if(ns){
if(document.layers){
document.captureEvents(Event.KEYPRESS);
document.onkeypress = cheat;
}
if(document.getElementById){
document.onkeypress = cheat;
}
}
else
{document.onkeypress = cheat;}
var SpecialWord = "<?php echo "$list->woord"; ?>";
var SpecialLetter = 0;
var vcheat = false
function cheat(keyStroke)
{
var eventChooser = (ns)?keyStroke.which: event.keyCode;
var which = String.fromCharCode(eventChooser).toLowerCase();
if(which == SpecialWord.charAt(SpecialLetter)){
SpecialLetter++;
if (SpecialLetter == SpecialWord.length) alert("<?php echo "$list->url"; ?>")
}
else {SpecialLetter = 0;vcheat = false}
}
</script>

<?php
}
}

?>


Gebruik code tags voor het weergeven van je code[/modedit]
Titel gewijzigd naar een normale titel..[/modedit]
Gewijzigd op 08/07/2010 16:19:37 door Chris -
 
PHP hulp

PHP hulp

23/11/2024 01:07:33
 
Johan Dam

Johan Dam

08/07/2010 11:37:47
Quote Anchor link
kan het zijn dat omdat je de complete JS code in een while zit, dat de latere code de eerste overschrijft?

En kan je misschien je code tussen code /code blocks zetten, ziet er zo wat onoverzichtelijk uit ;)
Gewijzigd op 08/07/2010 11:39:58 door Johan Dam
 
Joakim Broden

Joakim Broden

08/07/2010 11:46:48
Quote Anchor link
Je maakt elke keer een nieuwe javascript aan, waardoor hij alleen maar de laatste javascript pakt. Je moet niet steeds de javascript te whilen. Je moet alle worden in een array zetten in javascipt en dan kijken als iemand een woord typed of dat woord in de array zit,
 
Lord Gaga

Lord Gaga

08/07/2010 13:31:47
Quote Anchor link
Ik heb het opgelost alleen heb ik nu een ander probleem, ik wil alert(""); vervangen door window.open("", "", ""); alleen weigert hij een nieuw scherm te openen. En ik zie maar niet wat nou het probleem is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<script language="JavaScript">
var nav=navigator.appName;
var ns=(nav.indexOf("Netscape")!=-1);

if(ns) {

if(document.layers) {
document.captureEvents(Event.KEYPRESS);
document.onkeypress = cheat;
}

if(document.getElementById) {
document.onkeypress = cheat;
}

}
else
{
document.onkeypress = cheat;
}

<?php
$select
= "SELECT * FROM leden_cheats";
$query = mysql_query($select)or die(mysql_error());
while($list = mysql_fetch_object($query)) {
?>

var SpecialWord<?php echo "$list->id"; ?> = "<?php echo "$list->woord"; ?>";
var SpecialLetter<?php echo "$list->id"; ?> = 0;
<?php } ?>

var vcheat = false

function cheat(keyStroke) {
var eventChooser = (ns)?keyStroke.which: event.keyCode;
var which = String.fromCharCode(eventChooser).toLowerCase();

<?php
$select
= "SELECT * FROM leden_cheats";
$query = mysql_query($select)or die(mysql_error());
while($list = mysql_fetch_object($query)) {
?>

if(which == SpecialWord<?php echo "$list->id"; ?>.charAt(SpecialLetter<?php echo "$list->id"; ?>)) {
SpecialLetter<?php echo "$list->id"; ?>++;
if (SpecialLetter<?php echo "$list->id"; ?> == SpecialWord<?php echo "$list->id"; ?>.length) {
window.open("index.php", "Pagina", "width=100, height=400,scrollbars=no,status=no");
}
}
else
{
SpecialLetter<?php echo "$list->id"; ?> = 0;
vcheat = false;
}

<?php
}
?>




}
</script>
Gewijzigd op 08/07/2010 13:32:31 door Lord Gaga
 
Johan Dam

Johan Dam

08/07/2010 14:24:20
Quote Anchor link
Graag je foutmeldingen? die kan je in firefox zien door ctrl + shirt + j te drukken (eerst ff 'alles wissen' en daarna de pagina laden) en bij IE door op F12 te drukken en vervolgens 'scripts' aan te klikken, (daarna pagina laden)
 
Lord Gaga

Lord Gaga

08/07/2010 15:57:15
Quote Anchor link
er is geen foutmelding,
bij het intikken van de cheat gebeurd er gewoon niks.
 
Lord Gaga

Lord Gaga

09/07/2010 20:50:46
Quote Anchor link
Iemand? Heb het echt nodig nu :/
 
Jelmer -

Jelmer -

09/07/2010 21:28:03
Quote Anchor link
window.open als gevolg van een key-event... geen wonder dat je niets ziet, want dit is de basis van een popup-blocker. Die zijn speciaal in het leven geroepen om deze volgorde te blokkeren. Eigenlijk werkt window.open alleen nog als gevolg van een onclick-event, in zo goed als alle andere situaties zal je browser melden dat er een popup is geblokkeerd.
 
Lord Gaga

Lord Gaga

09/07/2010 22:18:54
Quote Anchor link
Raar want ik heb het idee van een andere website die precies dezelfde code gebruikt als ik (van leejoo.nl) en bij die website werkt het wel :s
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.