Sorry, dat ik van de hak op de tak spring. Er zit nu eenmaal voor mij nog geen samenhang in de fouten.
Ik word (niet) gek!
Ik heb een array van 25 talen (volgens ISO-afkortingen):
codes = ["sq", "en", "bg", "cs", "da", "fi", "fr", "de", "el", "es", "hu", "it", "ca", "hr", "lt", "nl", "no", "pl", "pt", "ro", "ru", "sr", "sk", "sv", "tr", "uk"], die allemaal de waarden “goed” of “slecht” moeten krijgen van de user. (Uiteraard gaat het niet om de kwaliteit van de taal.)
Zeven daarvan moeten door de user beoordeeld worden in Zamenhof.php, de andere 18 in intereurop.php.
Zes van de zeven liggen vast: en, fr, de, es, pl en ru. De zevende mag de user zelf kiezen, namelijk it of pt. Welke hij kiest, geeft hij op met de variabel pI (“portugees-Italiaans”). Kiest hij/zij Portugees, dan wordt pI = “pt”, kiest hij/zij Italiaans, dan wordt pI = “it”. In het eerste geval wordt Italiaans bij intereurop.php ingedeeld, in het tweede geval wordt Portugees bij intereurop.php ingedeeld. Zodoende komen alle 25 talen toch ergens aan de beurt.
De waarden van “de grote zes” (en, fr, de, es, pl en ru: goed of slecht) en van pI (Portugees of Italiaans) worden van Zamenhof.php naar intereurop.php gepost. Wat gebeurt er nu?
De uitprint van de postvariabelen in intereurop.php bevat “Zamsubmit: submit” (d.w.z. Zamsubmit is set) en “pI: it” (de user kiest Italiaans in de groep van zeven talen). Dat bepaalt, hoe de server de volgende stukken PHP-code in intereurop.php behandelt:
Code:
<?php
if (isset($_POST['ZamSubmit'])) {
if ($pI=="pt") { // Tio signifas, ke chi-tiu pagho estas vokita el Zamenhofa.php, kie la itala estis ekskludita
?>
<tr>
<td class="d">
<button type="button" onclick="style='background-color: ' + kleur; KijkinGoogle('it')">
Klik hier voor Italiaans (it)</button >
</td>
<td class="ctr">
<input type="radio" name="it" value="1" onclick="marku('it','goed')" />goed
<input type="radio" name="it" value="0" onclick="marku('it','slecht')" />slecht
<input type="radio" name="it" value="-1" onclick="return forigu('it')" />onbepaald
</td>
</tr>
<?php
}
}
?>
en
Code:
<?php
if (isset($_POST['ZamSubmit'])) {
if ($pI=="it") {
?>
<tr>
<td class="d">
<button type="button" onclick="style='background-color: ' + kleur; KijkinGoogle('pt')">
Klik hier voor Portugees (pt)</button >
</td>
<td class="ctr">
<input type="radio" name="pt" value="1" onclick="marku('pt','goed')" />goed
<input type="radio" name="pt" value="0" onclick="marku('pt','slecht')" />slecht
<input type="radio" name="pt" value="-1" onclick="return forigu('pt')" />onbepaald
</td>
</tr>
<?php
}
}
?>
Het is onbegrijpelijk, maar waar: geen van beide snippets worden van server-side doorgegeven! (Een van de twee zou door moeten komen, in dit geval (pI: it) de tweede, in het andere (pI: pt) de tweede.)
Toevoeging:
Als ik de PHP-code weghaal, komen beide talen-snippets natuurlijk wel door, maar ook verdwijnt een heel andere fout, nl. x[0] is undefined die ik op 7-5 om 12u48 al vermeldde:
Ik krijg voor var x = document.getElementsByName(kodoj); bij i=13 (Italiaans!) de foutmelding
(via alerts) "x[0] is undefined; x is object".
Wat voor object kan x dan wel zijn: geen string, geen boolean, maar .......... ?
Hoe die twee fouten gerelateerd zijn, is nog een groter raadsel dan bovenstaande fout.
Dat ze samenhangen staat voor mij vast.