Nos, akkor hogy is lesz ez működőképes? Továbbá lehetséges-e a indexelésben a karakterek közt az alsó aláhúzás? Pl: $hun[1_0];
<?php
$input=$_GET['input']; // alapértelmezetten a textarea, azaz a beviteli szövegmező neve, ezen szövegmezőbe kerül a forrásnyelvi fordítandó szó
$output=$_GET['output']; //célnyelvi szöveg, ami kiirandó, mondjuk rejtett keretű táblázatba
$forrasnyelv=$_GET['forrasnyelv']; //amely nyelvről kell a fordítás!!
$celnyelv=$_GET['celsnyelv']; //Amely nyelvre kell a fordítás!!
$hun=$_GET['hun'];
$eng=$_GET['eng'];
$hun = array(); //nyelvi szókészlet, szókincs, amelyről vagy amely nyelvre fordítunk
$hun[0] = "magyar";
$hun[1] = "fiú";
$hun[2] = "lány";
// ...
$eng = array();
$eng[0] = "angol";
$eng[1] = "boy";
$hun[2] = "girl";
// ...
// fontos, hogy az indexek megegyezzenek!
$input = ""; // ezt az űrlapból, az űrlapon levő beviteli szövegmező, alapértelmezetten textfield, illetve input neevet kap, olvasstatjuk ki, például a fordítandó (magyar) szzó: "lány"
$index = array_search($input, $hun); // ez megkeresi a "lány" indexét a $hun tömbben; false-t ad vissza, ha nem találja!
if ($index !== false)
{
$output = $eng[$index];
}
else
{
$output = null; // A szótárban nem található a kért szó.
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " [link]
<html xmlns=" [link]
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form action="szotar_forditas.php" method="get">
<table width="200" border="1">
<tr>
<td>forrásnyelv
<select name="forrasnyelv">
<option value="Magyar">magyar</option>
<option value="angol">angol</option>
<option value="spanyol">spanyol</option>
--Válassz!--
</select>
célnyelv
<select name="celnyelv">
<option value="Magyar">magyar</option>
<option value="angol">angol</option>
<option value="spanyol">spanyol</option>
--Válassz!--
</select>
</tr>
<tr>
<td><textarea name="input">ide kerül a fordítandó szó, szöveg</textarea></td>
</tr>
<tr>
<td><input name="forditas" type="button" value="fordítás" /></td>
</tr>
</table>
</form>
</body>
</html>
Ismerős a kód egyes részei, mintha én írtam volna egy másik kérdés alá :)
Egyébként a $_GET['hun'] és a $_GET['eng'] értéke elveszik, mert a $hun és az $eng változót felülírod...
A kérdésedre válaszolva:
Tömb indexe vagy szám, vagy szöveg. Szövegben lehet természetesen aláhúzás karakter is. De az olyanokat, mint a példád (0_1) idézőjelek közé kell írni:
'0_1' vagy "0_1"
És a magyarázat: számmal nem kezdődhet azonosító.
(Azonosító = változó neve, függvény neve, konstans neve, stb.)
Sőt ez is működik:
$valtozo["Ez a változó azonosítója, sőt még ez is"] = "Értéke";
AIgen, a korábban kapott válaszból emeltem be és hoztam együtt vissza a html-es résszel együtt, mert többnyelvűségben gondolkodom, akár idegennyelvről idegennyelvre, ennek okán szükségét érzem, hogy a leendő felhasználó megjelölhesse mely nyelvű szótárt , szótárpárt , nyelvpárt használja, igy lesz forrásnyelvi és célnyelvi, mindkettőt be , meg kell jelölni, máskülönben honnan tudja a program, mely szótárban keresse az idegennyelvi megfelelőt ?
Ezért jelent számomra még nehézséget. Vannak ismereteim, csak a gyakorlatba átültetnem még mindig nagyon nem akar menni számomra, nem értem miért.
Szerintem kezd el magadtól írni az elejétől, és csak egy nyelvre koncentrálva. Mondjuk angol -> magyar vagy fordítva. Egyelőre még az oda - vissza sem lényeges, csak egy irány elég lesz egyelőre.
A hogyan persze mindig kérdés.
Először is, a GET és a POST közti különbséget kell megérteni. A GET a címsorban adja át az információt a POST meg úgymond a "háttérben".
Aztán, előbb inicializáld a változókat annak megfelelően, hogy mire lesz szükséged. Nyilván mindenképpen kell majd egy $kerSzo vagyis a keresett szó, aztán kell egy $engTomb (később egy file), amiből kikeresed a szót, ehhez kell egy for vagy while ciklus, ami addig keres, amíg meg nem találja a keresett szót. Bár ha ügyesen csinálod meg a tömböt, akkor nem feltétlenül kell.
Például:
$kerSzo = 'Kutya';
$engTomb = array(
"Alma" => "Apple",
"Auto" => "Car",
"Macska" => "Cat",
"Kutya" => "Dog"
);
$talSzo = $engTomb[$kerSzo];
echo $talSzo;
Nyilván itt lehet kötekedni, "mi van, ha KuTyA formában adja meg", de most szerintem a fő cél, hogy előbb a fordítás menjen.
Aztán ott a html is. Ha get formában akarod elküldeni, akkor érdemes utánanézned, hogy milyen formában szokták átadni az adatokat geten keresztül. Általában kellenek elválasztó karakterek, hogy azért a kód is tudja, hogy mi - mettől - meddig terjed.
Mondjuk én is gondoltam ilyenre alapból, indulásból, hogy keresett meg talált szó, csak én azokat
forrásnyelvi
és célnyelvi -nek neveztem el , azaz azzal probálkoztam, hogy
$forrasnyelvi
$celnyelvi
és ezért ezt a kettőt a listához gondoltam hogy kell tenni, amiben a forrásnyelv és célnyelv megnevezése található és megjelölhető, hogy tudja a program, mely két szótárt vegye elő.
Csak nekem ezzel a feltétel és ciklusírással vannak gondjaim, nehézségeim pont :(
illetve hasonlóképpen a megjelenítést is , hogy a beviteli mezhőben szerepel az űrlapon ugye a keresett szó forrásnyelvi megfelelője, azaz aminek keresem az idegennyelvű párját,
a talált szó, illetve célnyelvi szó pedig amit keresek, amit várok megjelenítenni.
Vagyis mind a lilst menük, mind a beviteli mező és az a felület, amiben a megjelenítendőnek kell megjelenni, együtt kell tudnia működni, érteni egymást
Na ez nehéz, ami nekem probléma.
Lehet, az sem mindegy, hova teszema tömböt a programon belül, mert van olyan probálkozásom, hogy már kiírja, hogy "null", vagyis a kivételes, hibás esetet, amikor nem találja a keresett szót, de nem értem, miért nem találja alig 3 szópárnál sem :D ez vicc. :D ha ki tudta írni, hogy "null", akkor miért nem találta a felette levő megfelelő szót???
1. Ha ennyire nem megy még a próbálkozás (te írtad, hogy a ciklussal meg a feltételekkel is gondjaid vannak), akkor előbb szerintem az alapoknak nézz utána.
Én nemrég végignyomkodtam itt a PHP-s leckéket:
És nem olyan rossz, nyugodt szívvel tudom ajánlani. Ha tudsz angolul, vagy veszed a fáradtságot, hogy kiszótárazd a magyarázatokat, akkor hasznos tud lenni.
2. Ha valami nem úgy működik, ahogy várod, akkor el kell kezdeni hibát keresni, azaz debugolni. Ehhez PHP-ban van egy jó kis függvény, amit én előszeretettel használok:
var_dump()
Ez mindent kiír a paraméterként kapott változókról, stb. (típus, érték)
Példa:
$x = 42;
var_dump($x); // ez kiírja, hogy ez egy int típusú változó, aminek 42 az értéke
A te esetedben a következőket ajánlott megvizsgálni:
- mit kap az űrlaptól a PHP
- az szerepel-e PONTOSAN ÚGY a tömbödben (kisbetű-nagybetű is számít!)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!