Toon posts:

[Javascript-PHP] NaN probleem

Pagina: 1
Acties:
  • 315 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi,

ik heb een stuk PHP code wat ik met javascript aangevuld heb.
PHP haalt namelijk een waarde uit de database en zet die in een hidden field van een formulier.
Nou wil ik dus met dat nummer in javascript iets bijhouden.
Maar nu heb ik het probleem dat die iedere keer zegt: NaN, terwijl het echt een nummer is.
Weet iemand een oplossing voor me?

PHP:
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
<? 
# Hidden Field waarde
$sql = "SELECT * FROM ma_mailing_criteria_afdelingen ";
$sql .= "WHERE ma_mailing_criteria_afdeling_criteria_id = ".$cid;
$resultaat_js = mysql_query($sql) or die (errorlog_toevoegen_sql($sql, mysql_error()));
intval($nummer = mysql_num_rows($resultaat_js));
echo "<input type=\"hidden\" name=\"afdeling\" value=\"$nummer\">\n";

# Lus om checkboxes te genereren, met een nummer als naam (1,2,3,4,5 etc)
$sql = "SELECT * FROM in_afdelingen ORDER BY in_afd_naam";
$resultaat_d = mysql_query($sql) or die (errorlog_toevoegen_sql($sql, mysql_error()));
while ($afdelingen = mysql_fetch_array($resultaat_d)) {
    $in_afd_id = $afdelingen["in_afd_id"];
    echo "<input type=\"checkbox\" name=\"".$in_afd_id."\" value=\"0\"";
    if (isset(${"$in_afd_id"})) echo " checked";
    echo " onclick=\"checkChecked(this);\">".$afdelingen["in_afd_naam"]."<br>\n";
}

# Javascript stukje
<script language="javascript"><!--
// Het aantal gecheckte checkboxes controleren
function checkChecked(obj) {
    var val = parseInt(window.document.formulier.afdeling.value);

    if (obj.checked == true) {
            val += 1;
            window.document.formulier.afdeling.value = val;
            alert('nummer: ' + val);
    } else if (obj.checked == false) {
        if (val > 1) {
            val -= 1;
            window.document.formulier.afdeling.value = val;
            alert('nummer: ' + val);
        } else if (val == 1) {
            val = 0;
            window.document.formulier.afdeling.value = val;
            alert('nummer: ' + val);
        }
    }
}
//--></script>

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15:26

Janoz

Moderator Devschuur®

!litemod

Je php is voor zover ik kan zien gewoon in orde. Wel is het handiger om de tel query mbv een sum count te doen zodat je niet de complete inhoud van de tabel ophaalt. Je hoeft immers alleen maar het aantal records te weten.

Ik denk toch dat het een javascript probleem is. De enige manier om val NaN op te laten leveren is door een falende parseInt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
ik heb het ook zonder parseInt geprobeerd.
Zelfde probleem. Ook met een parseFloat. Zelfde probleem.
ik snap er werkelijk niets van ...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:08

gorgi_19

Kruimeltjes zijn weer op :9

Janoz schreef op 03 december 2003 @ 09:58:
Wel is het handiger om de tel query mbv een sum te doen zodat je niet de complete inhoud van de tabel ophaalt.
Hiervoor kan je toch beter COUNT() gebruiken ipv SUM()?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Bubbaman
  • Registratie: Juli 2003
  • Laatst online: 20-03-2022
Staat dat stukje Javascript in PHPcode, of HTML?

Verwijderd

Topicstarter
Bubbaman schreef op 03 december 2003 @ 10:10:
Staat dat stukje Javascript in PHPcode, of HTML?
Het staat in HTML modus, als je dat bedoelt. Al moet dat niets uitmaken, omdat PHP serverside is, dus alles wordt eerst geparsed, daarna gaat javascript er pas wat mee doen...

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15:26

Janoz

Moderator Devschuur®

!litemod

Verwijderd schreef op 03 december 2003 @ 10:05:
ik heb het ook zonder parseInt geprobeerd.
Zelfde probleem. Ook met een parseFloat. Zelfde probleem.
ik snap er werkelijk niets van ...
Al gekeken of de parameter wel goed is die je aan parseInt meegeeft? Geef eens een alert daarvan.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Janoz schreef op 03 december 2003 @ 10:23:
[...]

Al gekeken of de parameter wel goed is die je aan parseInt meegeeft? Geef eens een alert daarvan.
Dit geeft de melding: "undefined"
maar waarom doet ie dit dan?

Verwijderd

Topicstarter
Ik heb het net opgelost...
Blijkt dat er per ongeluk 2 hidden fields waren met dezelfde naam, maar andere waarde ... |:( |:( |:( |:( |:(

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15:26

Janoz

Moderator Devschuur®

!litemod

Javascript probleem dus

* Janoz schopt 'm over de schutting.

Hij doet dat omdat dat niet is gedefinieerd. window.document.formulier.afdeling is dus niet de identifier van het hidden field.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • 0528973
  • Registratie: Juni 2003
  • Laatst online: 15-05-2013
2 voorbeelden die zullen werken
en daarna 2 voorbeelden die niet zullen werken
code:
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
<title>
</title>
</head>
<body>
<form name="formexample">
<input type="hidden" name="hiddenexample" value="example">
<input type="button" onclick="javascript:alert(window.document.formexample.hiddenexample.value);">
</form>
</body>
</html>


code:
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
<title>
</title>
</head>
<body>
<form name="formexample">
<input id="hiddenexample" type="hidden" name="hiddenexample" value="example">
<input type="button" onclick="javascript:alert(window.document.getElementById('hiddenexample').value);">
</form>
</body>
</html>

---------------------------------------
code:
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
<title>
</title>
</head>
<body>
<form name="formexample">
<input type="hidden" name="hiddenexample" value="example">
<input type="button" onclick="javascript:alert(window.document.formexample.hiddenexample.getvalue);">
</form>
</body>
</html>

code:
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
<title>
</title>
</head>
<body>
<form name="formexample">
<input type="hidden" name="hiddenexample" value="example">
<input type="button" onclick="javascript:alert(window.document.getElementById('hiddenexample').getvalue);">
</form>
</body>
</html>

------------------------------------------
Denk er aan, javascript is HoofdLetter gevoelig.

hulp bij javascript:
http://www.devguru.com/Te...ref/javascript_intro.html

[ Voor 25% gewijzigd door 0528973 op 03-12-2003 10:58 ]

Pascal

Pagina: 1