JohanDerks
Verenigingslid
- Lid geworden
- 2 dec 2006
- Berichten
- 82
Ik wil het aahtal talen tellen, waarvan de vertaling van een basiswoord uit een brontaal lijkt op dat basiswoord. De vertalingen worden gegeven met Google Translate. De al of niet gelijkenis wordt door de gebruiker ingevoerd met radioknoppen, voor elke taal, die de waarden x[0].checked (= gelijkend), x[1].checked (= niet gelijkend) of x[2].checked (= twijfelachtig) van de gebruiker hebben gekregen..
De uitkomst volgt uit de berekening van de som van talen met x[1].checked, gedeeld door de som van alle talen min de twijfelgevallemn (aantal x[0] + aantal x[1]).
Het telmechamisme is opgeslagen in de functie "nombru()":
Het probleem is, dat ik als lingvonombro NaN voortdurend (aan het eind, maar ook tijdens de berekening m. behulp v. alerts) krijg én dat de alert "You still have not given your judgment.........."verschijnt, hoewel ik als gebruiker alle talen heb afgehandeld.
Ik dacht, dat het kwam door dat gedoe met "if (unua) {}". maar na verwijdering van dat gedeelte en op de plaats waar nu "if (unua) {}" staat de declaraties lingvonombro = 0; lingvosumo = 0 blijft het omschreven probleem bestaan!
Ik hoop, dat deze keer het probleem overzichtelijk en beperkt is aangeboden. Bij voorbaat veel dank voor tips.
Ik heb een deel van de oplossing gevonden:
Als x = getElementsByName maar één element oplevert, kun je toch niet werken met x.value of (dat zou al beter zijn
x.value[0]. Het is en blijft een node, dus typeof x.value[0] is "undefined". De enige juiste voorwaarde is: if (x[0].checked) {....................}. x[0].checked is boolean. Dus
Maar toch werkt het nog niet goed. Er gaat iets fout bij het vet gedrukte if (x[0].checked), de ene keer bij i = 11, de andere keer bij i = 10. Dat helpt jullie niet, maar misschien wel, dat in beide gevallen "x[0].checked" true is en de foutmelding "x[0] is undefined" verschijnt.
Is er iets fout met "if (!x[2].checked)" ? Die uitdrukking wordt geaccepteerd door JSHint, evenals "if (x[2].checked = false)".
Vandaag heb ik een andere mogelijke oorzaak ontdekt. De volgende PHP-syntax wordt niet geaccepteerd door http://phpcodechecker.com/:
Ik krijg nl. als foutmelding:
Ik werk al sinds november aan deze app. Oh wanneer zal ik dit kunnen beëindigen!
De uitkomst volgt uit de berekening van de som van talen met x[1].checked, gedeeld door de som van alle talen min de twijfelgevallemn (aantal x[0] + aantal x[1]).
Het telmechamisme is opgeslagen in de functie "nombru()":
Code:
function nombru(lg) {
var unua = true;
for (var i = 0; i < lenE; i++) {
x = document.getElementsByName(kodoj[i]);
if (unua) { // De eerste Europese taal is het Albanees en die is gemarkeerd als m.behulp v. radio-knoppen. Bovendiemn gebruik de inspectie van de markering van het Albanees om de variabelen die uiteindelijk lingvonombro (talenaantal = het aantal talen met een gelijkende vertaling) en lingvosumo (talensom = alle talen behalve die met een twijfelgeval) moeten opleveren te declareren.
if (x.length > 1) { // x.length = 3: array(x[0]=gelijkend, x[1]=niet gelijkend, x[2]=twijfelgeval
if (x[0].checked) { // gelijkend
lingvonombro = 1; // declaratie van lingvonombro met algemene scoop, dus geen "var"
} else if (x[1].checked) {
lingvonombro = 0; // idem als boven met andere beginwaarde
}
if (!x[2].checked) {
lingvosumo = 1; // declaratie van lingvosumo met algemene scoop, dus geen "var"
}
}
unua = false; // want nu zijn lingvonombro en lingvosumo gedeclareerd en geinitialiseerd
} else {
if (x.length > 1) { // nu komen andere Europese talen met radio-knoppen aan de beurt
if (x[0].checked) {
lingvonombro += 1;
}
lingvosumo += 1;
} else { // Hier betekent "else: x.length=1. Dat geldt voor zeven "grote" Europese talen, die al in een eerder PHP-document door de gebruiker zijn gemarkeerd, maar met slechts twee mogelijkheden (gelijkend of niet-gelijkend) in plaats van drie. Ze hebben de waarde 1 gekregen voor gelijkend en 0 voor niet gelijkend. Om die uitkomsten bij lingvonombro en lingvosumo op te tellen, krijgen we:
lingvonombro += x.value;
lingvosumo += 1;
}
}
if (i < lenE - 1) {
alert("You still have not given your judgment on the\n" +
"translation of '..................' to all the languages!");
}
}
}
Ik dacht, dat het kwam door dat gedoe met "if (unua) {}". maar na verwijdering van dat gedeelte en op de plaats waar nu "if (unua) {}" staat de declaraties lingvonombro = 0; lingvosumo = 0 blijft het omschreven probleem bestaan!
Ik hoop, dat deze keer het probleem overzichtelijk en beperkt is aangeboden. Bij voorbaat veel dank voor tips.
Ik heb een deel van de oplossing gevonden:
Als x = getElementsByName maar één element oplevert, kun je toch niet werken met x.value of (dat zou al beter zijn

Code:
function nombru(lg) {
lingvonombro = 0;
lingvosumo = 0;
for (var i = 0; i < lenE; i++) {
x = document.getElementsByName(kodoj[i]);
if (x.length > 1) {
[B]if (x[0].checked)[/B] {
lingvonombro += 1;
}
if (!x[2].checked) {
lingvosumo += 1;
}
} else {
if (x[0].checked) {
lingvonombro += 1;
}
lingvosumo += 1;
}
}
}
Is er iets fout met "if (!x[2].checked)" ? Die uitdrukking wordt geaccepteerd door JSHint, evenals "if (x[2].checked = false)".
Vandaag heb ik een andere mogelijke oorzaak ontdekt. De volgende PHP-syntax wordt niet geaccepteerd door http://phpcodechecker.com/:
Code:
if (isset($_POST['en'])) {
print '
<input type="hidden" name="en" value="'.$_POST['en'].'" />
<input type="hidden" name="de" value="'.$_POST['de'].'" />
<input type="hidden" name="pl" value="'.$_POST['pl'].'" />
<input type="hidden" name="ru" value="'.$_POST['ru'].'" />
<input type="hidden" name="fr" value="'.$_POST['fr'].'" />
<input type="hidden" name="es" value="'.$_POST['es'].'" />
';
$pI = $_POST['portugalaItala'];
// Plenigo de radibutonoj fM.pI jam estas kontrolita en fontsugesto.html. @pI = pt, it au ip
if ($pI=="it") {
print '
<input type="hidden" name="it" value="'.$_POST['it'].'" />
';
} else if ($pI=="pt") {
print '
<input type="hidden" name="pt" value="'.$_POST['pt'].'" />
';
} else {
print '
<input type="hidden" name="it" value="'.$_POST['it'].'" />
<input type="hidden" name="pt" value="'.$_POST['pt'].'" />
';
}
}
print '
<input type="hidden" name="specifZ" value="'.$_POST['specifZ'].'" />
<input type="hidden" name="lingvonbro" value="'.$_POST['lingvonbro'].'" />
<input type="hidden" name="lingvosumo" value="'.$_POST['lingvosumo'].'" />
<input type="hidden" name="denprlnbro" value="'.$_POST['denprlnbro'].'" />
<input type="hidden" name="denprlsumo" value="'.$_POST['denprlsumo'].'" />
<input type="hidden" name="vavalnbro" value="'.$_POST['vavalnbro'].'" />
<input type="hidden" name="vavalsumo" value="'.$_POST['vavalsumo'].'" />
';
} else {
print '
<input type="hidden" name="lingvonbro" value="0" />
<input type="hidden" name="lingvosumo" value="0" />
<input type="hidden" name="denprlnbro" value="0" />
<input type="hidden" name="denprlsumo" value="0" />
<input type="hidden" name="vavalnbro" value="0" />
<input type="hidden" name="vavalsumo" value="0" />
<table border= "0" class="mllrgh">
.....................
</table>
';
Ik heb allerlei varianten uitgeprobeerd. Ziet iemand de fout?PHP Syntax Check: Parse error: syntax error, unexpected '}' in your code on line 36:
} else {
PHP Syntax Check: Errors parsing your code
Ik werk al sinds november aan deze app. Oh wanneer zal ik dit kunnen beëindigen!
Laatst bewerkt: