Hirdetés

2024. június 8., szombat

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2014-02-25 10:20:57

LOGOUT.hu

JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)

Összefoglaló kinyitása ▼

Hozzászólások

(#2301) Sk8erPeter válasza coco2 (#2299) üzenetére


Sk8erPeter
nagyúr

Minek ilyen nyakatekerten megoldani a függvényeket? Nem igazán világos itt az anonim funkció szerepe sem, hogy tulajdonképpen minek - nem sok értelme van.

Átalakítva valami normálisan értelmezhető formára:

function multiply( a, b ){
return a * b;
}

alert( multiply(3, 4) ); // 12

Így még lehet is látni, mit akar csinálni a függvényed.
Egyébként ha nagyon ragaszkodsz - az okát nem látom - a saját függvényedhez, akkor az anonim funkciónál sincs sok értelme egyből megadni a bemenő paramétereket.
Példa:

var proven = function (a, b) { return a * b; };

alert( proven(3, 4) ); // 12

Így pontosan ugyanaz a függvény meghívásának módja.

=====

(#2300) Athlon64+ : sajnos nagyon sok tutorialban a mai napig benne maradt ez a language="JavaScript" baromság. Ez még nagyon régen használatos volt, de már elég régóta kiment a divatból - tehát "deprecated"-nek minősül (pl.). Itt is találtam egy oldalt, ahol arról vakerásznak, miért is kell(ett) ez az attribútum. Sajnos az ilyeneket nem törlik. Volt ilyen, ma már nincs.

[ Szerkesztve ]

Sk8erPeter

(#2302) coco2 válasza Peter Kiss (#2300) üzenetére


coco2
őstag

Ezekről a funkció blokkokról nem találtam könyvekben "official" véleményt. Amik normális könyvek a kezembe kerültek, ezt valahogy egyik sem taglalta. Pusztán a szintaktikája révén:

var valami= (function( ) { })( );

az a bizonyos zárójel nekem olybá tűnt, hogy ez a "valami" változó igazából egy függvényt fog tárolni, mint pld a C++ függvény változói, ami rajta keresztül hívható, és ez mindössze egy másik alakja ennek:

var valami= function( ) { };

Akkor ezt benéztem volna?

Ha akad egy jó könyv, amelyik részletesen taglalja a funkció blokkokat is, és legalább csak egy kicsit kevésbé érthetetlenül absztrakt, mint az Angst Erzsébet könyv, szívesen elolvasom belőle.

language="javascript"> <-- :Y Ezt hol olvastad?

Töltöttem le néhány weblapot, és firefox helyett notepaddal néztem meg. Ott olvastam. Ez valami bad practice lenne? Hamarosan jön az xhtml, az mit mond erről?

[ Szerkesztve ]

កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។

(#2303) Sk8erPeter válasza coco2 (#2302) üzenetére


Sk8erPeter
nagyúr

Még jó, hogy reagáltál arra is, amit én írtam neked...

Igen, "bad practice", vagy inkább "deprecated practice".

Sk8erPeter

(#2304) coco2 válasza Sk8erPeter (#2303) üzenetére


coco2
őstag

Sry éppen a lap aljára ért a topic, és azt hittem az az utolsó felírás.

"Javascript" okés, akkor ezután majd nem használom.

A felvésett funkcióblokk kezelési kérdés egy elszeparált példa. Azt a célt szolgálja, hogy megérthessem a lényeget.

[ Szerkesztve ]

កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។

(#2305) coco2


coco2
őstag

Ejnye, mire megtaláltam ezt a részletet, már nem tudom beleeditálni az előző felírásomba. Szóval futottam a Jcrop libbel egy kört, és egy ilyenbe akadtam bele:

$('#target').Jcrop({
onChange: updatePreview,
onSelect: updateCoords,
aspectRatio: 1
},function(){
// Use the API to get the real image size
var bounds = this.getBounds();
boundx = bounds[0];
boundy = bounds[1];
// Store the API in the jcrop_api variable
jcrop_api = this;
});

Részemről szívesebben láttam volna explicite kibontva ezt a (szerintem) mákos tésztát, de a szerzőnek más volt a véleménye. Ahogy elnézem ezt a object.Jcrop(,)-ot, kettő paramétere van, és mindkettőt blokkba zárta. A második blokkban sima érték adások vannak, de az első blokkban azok a kettőspontok, azok mik?

កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។

(#2306) Peter Kiss válasza Sk8erPeter (#2301) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Névtelen függvényeket akkor jó előszedni, ha a Javascript OO jellegével szeretnénk foglalkozni egyszerűbb megérteni.

var FirstBlood = function () {
alert("Constructing FirstBlood");
};

var t = new FirstBlood();

(#2307) Sk8erPeter válasza Peter Kiss (#2306) üzenetére


Sk8erPeter
nagyúr

Ezt most miért nekem írod? :U
Tisztában vagyok vele, elég sok OO-kódot írtam már JavaScriptben is, így nem is kértem magyarázatot, hogy az mire való - de az említett példában totálisan értelmetlen (inkább erőltetett) volt a használata.

Nem is objektumokat szeretett volna létrehozni, hanem szimpla számösszeszorzást végeztetni egy a és b számmal, és megvizsgálni az eredményt (vagyis a függvény visszatérési értékét).

[ Szerkesztve ]

Sk8erPeter

(#2308) Peter Kiss válasza Sk8erPeter (#2307) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Azért, mert nekem írtad a "language="JavaScript"" cuccot. :DDD Pontosan tudom, hogy lassan 13 éve nincs ez használatban.

(#2309) Sk8erPeter válasza Peter Kiss (#2308) üzenetére


Sk8erPeter
nagyúr

Akkor még jó, hogy egymást oktatgatjuk. :DD

Sk8erPeter

(#2310) Sk8erPeter válasza coco2 (#2305) üzenetére


Sk8erPeter
nagyúr

"szívesebben láttam volna explicite kibontva ezt a (szerintem) mákos tésztát, de a szerzőnek más volt a véleménye."
Hogy kellett volna "explicite kibontani"? Magyarázza el a JavaScript vagy jQuery alapjait? :D Vagy nem tudom, mire gondolsz.
Egyébként a kóddal nincs baj, ez így elég átlátható.

Tulajdonképpen röviden paraméterként átad egy objektumot, amiben az onChange és onSelect eseményekre mutató függvénypointereket tárolja (tehát milyen függvények hívódjanak meg az események bekövetkeztekor), második paraméterként pedig egy anonim függvényt ad át.

Ezt más szintaktikával is meg lehetett volna írni akár, pl. így:

var faszaObjektum = {
onChange: updatePreview,
onSelect: updateCoords,
aspectRatio: 1
};

$('#target').Jcrop(faszaObjektum, function () {
// Use the API to get the real image size
var bounds = this.getBounds();
boundx = bounds[0];
boundy = bounds[1];
// Store the API in the jcrop_api variable
jcrop_api = this;
});

De egybevonva látszik, mivel hívod meg a Jcrop-ot az adott DOM-elemre. Ez ízlés kérdése, hogy írod meg.

Sk8erPeter

(#2311) coco2 válasza Sk8erPeter (#2310) üzenetére


coco2
őstag

Nekem spec ez itt:

var faszaObjektum = {
onChange: updatePreview,
onSelect: updateCoords,
aspectRatio: 1
};

akkor is furcsa. Én azt hittem, a JScript Java alapokra hajaz, de ott értéket adni "="-al szokás, nem ":"-al. Én legalábbis még sohasem csináltam másképpen. A JQuery-t ne keverd ebbe bele, ez JScript alapot érintő kérdés. Az igazi problémámnak nulla köze van konkrét lib szintű kód részletekhez.

Azt hiszem egyszer már leírtam, hogy a példát szemlélés gyanánt ragadtam ki. Bele raktam az üres szintaktikai héj-ba egy szorzást, csak hogy valami legyen benne, ami értéket ad át oda meg vissza. Most hogy ezen juszt is elkezdesz rugózni.. irigylem a fene sok fölös energiádat. Ennyi erővel akár azt is megnézhetnéd nekem, milyen könyv van a könyvespolcodon JScript alapokról, mert a jelek szerint a Java alapok nem lesznek elegendőek.

កុំភ្លេចប្រើភាសាអង់គ្លេសក្នុងបរិយាកាសអន្តរជាតិ។

(#2312) Sk8erPeter válasza coco2 (#2311) üzenetére


Sk8erPeter
nagyúr

"Én azt hittem, a JScript Java alapokra hajaz, de ott értéket adni "="-al szokás, nem ":"-al. Én legalábbis még sohasem csináltam másképpen."

Erre válaszul egy elég hiteles forrás:
https://developer.mozilla.org/en/JavaScript/A_re-introduction_to_JavaScript
"It's useful to start with an idea of the language's history. JavaScript was created in 1995 by Brendan Eich, an engineer at Netscape, and first released with Netscape 2 early in 1996. It was originally going to be called LiveScript, but was renamed in an ill-fated marketing decision to try to capitalize on the popularity of Sun Microsystem's Java language — despite the two having very little in common. This has been a source of confusion ever since."

A JavaScript és a JScript megint csak nem ugyanaz. Te a JavaScript topicban vagy... :)
"Microsoft released a mostly-compatible version of the language called JScript with IE 3 several months later."
JScriptről továbbiak itt.

"Én legalábbis még sohasem csináltam másképpen. A JQuery-t ne keverd ebbe bele, ez JScript alapot érintő kérdés. Az igazi problémámnak nulla köze van konkrét lib szintű kód részletekhez."
1. Nem JScript, hanem JavaScript-alapot érintő kérdés, lásd a korábbiakat. :)
2. (A "JQuery-t ne keverd ebbe bele" részre reagálva:) Előbb nem volt egyértelmű, konkrétan melyik szintaktikával van a problémád...

"Most hogy ezen juszt is elkezdesz rugózni.. irigylem a fene sok fölös energiádat."
Én meg csodálkozom az erősen offenzív és egyben destruktív stílusodon. Idejössz, segítséget kérsz, meg is adjuk neked, több kérdésedre is reagálok, Te meg úgy válaszolsz, mint akinek szidták az anyját. Ha valaki próbál neked segíteni, akkor cserébe lehetőleg ne rugdalózz. Felvilágosításként: a segítségként történő válaszadást meg egy programozási hibára történő figyelemfelhívást nem "rugózásnak" hívnak. Így az embernek egy kicsit elmegy a kedve a további válaszadástól. És most nagyon finoman reagáltam az általad alkalmazott, bicskakinyitó stílusra.

Objektumok: [link], [link], plusz amire kérdezel, magára a szintaktikára ez jó referencia:
"An object is an unordered set of name/value pairs. An object begins with { (left brace) and ends with } (right brace). Each name is followed by : (colon) and the name/value pairs are separated by , (comma)."
Másik válasz:

var o = {
r: 'some value',
t: 'some other value'
};

is functionally equivalent to

var o = new Object();
o.r = 'some value';
o.t = 'some other value';

[ Szerkesztve ]

Sk8erPeter

(#2313) fordfairlane válasza coco2 (#2311) üzenetére


fordfairlane
veterán

A kettőspont nem értékadás, hanem az adatstruktúra definíciója. Talán a Hashmap a legközelebbi Java megfelelője.

x gon' give it to ya

(#2314) [pod]Diablo válasza Sk8erPeter (#2296) üzenetére


[pod]Diablo
őstag

Koszi szepen,tokeletes!: )

"Sült hal, Tom Jones, délutáni tea, rossz kaja, mégrosszabb idő, kibaszott Mary Poppins, LONDON!" // ...when i get sad.i stop being sad and be awesome instead...

(#2315) ubid


ubid
őstag

Helló!

Akit esetleg érdekel Jquery-Ajax képzés, az írjon privátot.

( tartózkodástól függetlenül)

-.-

(#2316) Abrion


Abrion
senior tag

Hali

Az első új hszhez ugrás, csak kíváncsi vagyok jól gondolom e ki.

Az első folyamat, phpból jönne, kiszámolja hányas lapon van a legelső új hsz és betölti, miután betöltődött a topik, 1 jquery a böngészőt odaugrasztja ahol a hsz van, ara gondoltam hogy mivel az új hsz kijelölődik, legalább is a legtöbb fórumon így van, mondjuk a prohardver kivéted, és mondjuk egy jpgel jelöli meg a hszt, és ara kereshet rá a jquery, gondolom egy ilyen jquery nem sokból áll, és ezt a jqueryt a body lezárási elé kéne raknom

[ Szerkesztve ]

(#2317) Peter Kiss válasza Abrion (#2316) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Szerintem elmentik, ki mikor járt utoljára az egyes topikokban, és így kérik le a cuccot. Minden HSZ-nek van id-je, amihez oda tud ugrani a böngésző, ha #-kal + id-vel van meghívva az oldal.

(#2318) Abrion válasza Peter Kiss (#2317) üzenetére


Abrion
senior tag

ezt nem kell mondanod, értek a phphoz, csináltam egy fórumot magamnak, és elég jó lett, mondjuk még nem nyitottam meg, de majd hamarosan igen, a lényeg hogy, jqueryvel lehet ezt megcsinálni, és ahogy elnézem pár böngésző ugró jquery kódot, nem kellett sokat bele írni, így gondolom ennél is így van, amúgy az id keresés nem 100% an jó, például ha törlődik vagy áthelyeződik a hsz akkor errort fog visszadobni, ezért gondoltam egy fix dologra keresésnél, mivel kijelölődik az új hsz miért ne lenne inkább ara a keresés, de majd meggondolom az id keresést.

(#2319) Sk8erPeter válasza Abrion (#2318) üzenetére


Sk8erPeter
nagyúr

Nem fogsz tudni jobbat az id-nál, lehet, hogy vannak alternatívák, de felesleges szarakodni.
Egyébként tulajdonképpen azért szeretnél ehhez jQuery-t, hogy ne egy gyors ugrás legyen a hsz.-re, hanem animálva legyen az odaugrás, vagy miért?
jQuery-vel is simán le tudod csekkolni, hogy létezik-e adott id-vel rendelkező elem, így nem fog hibát dobni:

// ha nem létezik "nemletezoid"-val rendelkező elem, akkor ez hamis
if( $('#nemletezoid').length > 0 ){
// ...
}

"például ha törlődik vagy áthelyeződik a hsz akkor errort fog visszadobni,"
1. nem fog errort dobni, ha alkalmazod a fenti kódot
2. de NE ALKALMAZD, hanem inkább kezeld ezt le szerveroldalon, a Te dolgod ellenőrizni, hogy ha az adott id-vel rendelkező hsz. nem létezik, akkor a következő létezőre ugorjon.
3. "áthelyeződni" adott fórumba érkező hsz.-ek elég ritkán szoktak. Itt nem tudom, mire gondolsz. Nem szoktak áthelyezni hsz.-t, inkább létrehoznak a másik fórumban egy új hsz.-t az adott tartalommal, az előzőt meg törlik.

[ Szerkesztve ]

Sk8erPeter

(#2320) Abrion válasza Sk8erPeter (#2319) üzenetére


Abrion
senior tag

1: nem értek a jshez, szal nekem ezt nyugodtan mutathatod :)
2: találkoztam olyan fórummal aminél az id törölve lett és az error.phphoz irányítót :D

de abban egyetértek hogy legyen benne egy hszre link, de a hszhez ugrásban nem 100%an jó

Amúgy képzeld ahhoz képest hogy amatőr vagyok jsben meg jqueryben, mondjuk ugyan az, megcsináltam majdnem egyedül az autocomplete ot :D van egy jquery ajax és amit kilistáz ara klikre bekopiza az input valuejába az adatokat :D

nem láttál hsz áthelyezést?
például ha valaki rossz helyre ir vagy elterelődik a téma, akkor célszerű a megfelelő topikba helyezni a hszeket hogy ott folytassák a témát, és nem ritka, max itt nincs

[ Szerkesztve ]

(#2321) Sk8erPeter válasza Abrion (#2320) üzenetére


Sk8erPeter
nagyúr

Ja, értem, OK, jogos a hsz.-áthelyezős téma, kicsit félreértettem.

"aminél az id törölve lett és az error.phphoz irányítót"
hát az elég gáz... röviden: az egy igénytelen fórum, igénytelen programozókkal :D

"de abban egyetértek hogy legyen benne egy hszre link, de a hszhez ugrásban nem 100%an jó"
Mi nem jó? :D Itt megint nem vágom, mire gondoltál.

"nem értek a jshez, szal nekem ezt nyugodtan mutathatod"
Na de akkor mit szeretnél? Most JavaScriptes megoldás kell, vagy nem?
Az anchorok használatához semmi JavaScript-alapra nincs szükség, szimpla HTML-ben is megoldható az "odaugratás".

Csináltam neked példát:
NÉZD MEG EZT!
Kattints az oldalon található linkekre!

Sk8erPeter

(#2322) Abrion válasza Sk8erPeter (#2321) üzenetére


Abrion
senior tag

Na de akkor mit szeretnél? Most JavaScriptes megoldás kell, vagy nem?
Az anchorok használatához semmi JavaScript-alapra nincs szükség, szimpla HTML-ben is megoldható az "odaugratás".
na ennek utána járok :), nekem 8 milyen, csak pontosan oda ugorjon

"de abban egyetértek hogy legyen benne egy hszre link, de a hszhez ugrásban nem 100%an jó"
Mi nem jó? :D Itt megint nem vágom, mire gondoltál.
ere értetem

A linket amit írtál, azt meg majd holnap megnézem.

Más
Nem zavar de az ajax nem müxik teljesen tökéletesen, ha gyorsan írok az inputba akkor a lekérdezés megáll és kilistáz minden rekordot az mysql tableból.

(#2323) Sk8erPeter válasza Abrion (#2322) üzenetére


Sk8erPeter
nagyúr

Mondjuk utánajárás helyett ráklattyolhatnál az előbb küldött linkemre, és nagyjából 10 másodperc eltöltése után értenéd, mire gondoltam. :P

Az általad belinkeltnél meg szintén nem tudom, mire akartál célozni, látom, és? :) Ha meg nem létező id-ra próbálsz hivatkozni, akkor átirányít a friss.html-re. Ez is egy megoldás, vagy az, hogy kiírod, hogy nincs ilyen, és vaze.

Az AJAX-os problémádat meg kód nélkül nem fogjuk tudni megoldani.

Sk8erPeter

(#2324) Abrion


Abrion
senior tag

Jquery
<script type="text/javascript">
$(document).ready(function(){
$("#name").keyup(function(){
sendValue($(this).val());
});
});
function sendValue(str){
$.post("ajax.php",{ sendValue: str },
function(data){
$("#kereso").html(data);
});
}
</script>

ajax.php

$value = $_POST["sendValue"];
$sql=mysql_query("SELECT * FROM lista WHERE cim LIKE '%$value%' order by cim asc");
while($row = mysql_fetch_array($sql)){}

[ Szerkesztve ]

(#2325) Abrion válasza Abrion (#2324) üzenetére


Abrion
senior tag

nem írtam oda, de kell a jquery.js is hogy működjön, de ezt bizonyára tudod :D

[ Szerkesztve ]

(#2326) Abrion


Abrion
senior tag

ahogy elnézem, senki nem talált benne hibát :D

(#2327) Sk8erPeter válasza Abrion (#2326) üzenetére


Sk8erPeter
nagyúr

Hát már rögtön abban van, hogy felhasználótól érkező megbízhatatlan adatot eleve nem adunk át közvetlenül (mindenféle escape-elés nélkül) SQL query-be.
Meg a mysql_query() és társaihoz hasonló függvények használata manapság már eleve felejtős. (Lásd pl. cucka kolléga korábban belinkelte az erről szóló hivatalos "hírt" is (deprecated lesz).) PDO-t használd, aztán később jöhetnek komolyabb ORM-ek is, ha úgy alakul.

"ha gyorsan írok az inputba akkor a lekérdezés megáll és kilistáz minden rekordot az mysql tableból."
Ha kilistázott minden rekordot, akkor nem "állt le" a lekérdezés. :D

while($row = mysql_fetch_array($sql)){}
Így fejezed be, de most itt a while-nál tényleg üres blokk van, vagy csak lespóroltad innen a többi bepötyögését? :U

Ha a $_POST["sendValue"] üres, akkor persze, hogy az összeset ki fogja listázni.
Léteznie kell name="sendValue" attribútumokkal rendelkező inputnak, amibe a felhasználó pötyögi az adatokat.

Sk8erPeter

(#2328) Abrion válasza Sk8erPeter (#2327) üzenetére


Abrion
senior tag

Ah kösz, nem is értem miért van itt szóköz, nem szoktam ilyen hibát elkövetni ><

lehet hogy 1x rosszul lett bekopizva

[ Szerkesztve ]

(#2329) Sk8erPeter válasza Abrion (#2328) üzenetére


Sk8erPeter
nagyúr

Te milyen szóközről beszélsz? :Y :DD

Sk8erPeter

(#2330) Abrion válasza Sk8erPeter (#2329) üzenetére


Abrion
senior tag

while($row = mysql_fetch_array($sql)){}

(#2331) Sk8erPeter válasza Abrion (#2330) üzenetére


Sk8erPeter
nagyúr

Most komolyan azt hiszed, az a hiba, hogy szóközt tettél a $row után és a mysql_fetch array elé? :O Ennyi jött át abból, amit írtam?? :(
Elég elkeserítő.
Nem, az kifejezetten NEM hiba... :U :W

Azért értelmezd is, amiket írnak neked.

Na jó, segítek, mert aztán sose lesz vége: {} - van egy ilyen üres blokkod, ahol nem csinálsz semmit a lekérdezés eredményével, erről beszéltem........

[ Szerkesztve ]

Sk8erPeter

(#2332) Abrion válasza Sk8erPeter (#2331) üzenetére


Abrion
senior tag

vagy úgy az én hibám, gondoltam nem kell azt is bekopiznom, mert ott nincs fontos dolog, csak pár echo, de ha ennyire ragaszkodsz hozzá, bekopizom a benne lévö scriptet is.

{
while($row = mysql_fetch_array($sql)){
$id=$row['id'];
echo "<tr>";
echo '<td id="'.$id.'" width="317px">' . $row['cim'] . '</td>';
echo '<td width="142px">' . $row['link1'] . '</td>';
echo '<td width="218px">' . $row['link2'] . '</td>';
echo '


<script type="text/javascript">
$(document).ready(function() {
$(\'#'.$id.'\').click(function(){
var current_value = $(this).html();
$(\'#name\').attr(\'value\', current_value);
current_value = $(this).parent("tr").children("td").eq(1).html();
$(\'#link1\').attr(\'value\', current_value);
current_value = $(this).parent("tr").children("td").eq(2).html();
$(\'#link2\').attr(\'value\', current_value);
});
});

</script></tr>';
}

Index.php ban még ez maradt le

<body>

<table><tr><td><input type="text" size="49" name="name" id="name"></td><td><input type="text" size="20" id="link1" /></td><td><input type="text" size="30" id="link2"></td></tr>
</table>

[ Szerkesztve ]

(#2333) Sk8erPeter válasza Abrion (#2332) üzenetére


Sk8erPeter
nagyúr

Hát én ugyan nem ragaszkodom hozzá, Te kértél segítséget, nem én... :N

Amúgy nincs name="sendValue" attribútummal rendelkező input-elemed, de ezt már korábban is magyaráztam, úgy látom feleslegesen.
Azért kell, mert ennek az értékét akarod elküldeni AJAX-szal, és erre kötöd a "keyup"-eseményt...
Valami ilyesminek kéne lennie:
<input type="text" size="49" name="sendValue" id="sendValue" />

A <script type="text/javascript"> részt tök felesleges PHP-val kiíratnod, mivel az "statikus".

Sk8erPeter

(#2334) Oly


Oly
senior tag

Sziasztok

A HTML topikban kezdtem, de itt folytatom.

Szeretnék egy olyan űrleapot csinálni, aminél gombnyomásra előjön az alapértelemezett levelező progi új mail ablaka, az űrlapon található adatokkal kitöltve.

Itt tartok:

<html>
<head>
<script type="text/javascript">
function sendMail() {
var body = document.form1.s2.value+"\n"+document.form1.s3.value;
var link = "mailto:valami&cc=valamimas&subject=targy&body="+body ; window.location.href = link; }
</script>
<title></title>
</head>
<body>
<form name="form1">
<input size="49" name="s1" id="sendvalue"
type="text"><br>
<input size="49" name="s2" id="sendvalue"
type="text"><br>
<input size="49" name="s3" id="sendvalue"
type="text"><br>
<br>
<button onclick="sendMail(); return false">Send</button>
</form>
</body>
</html>

Most két gondom van:
- nem szereti az ékezetes betűket.
- nem tudok sortörést tenni a string-be (\n-nel próbáltam, de nem reagál rá)

Segítségeteket előre is köszönöm.

SonyEricsson T20 - T68 - T610 - K700 - W800 - K750 - K800 - C702 - P1 - MOTO Defy - Galaxy S Advance - Galaxy S4 - Lumia 820 - Honor 7 - iPhone 5S

(#2335) Brown ügynök válasza Oly (#2334) üzenetére


Brown ügynök
senior tag

Próbáld a body változót így egybefűzni:

var body = document.form1.s2.value;
body += document.form1.s3.value;

A html és a program, amiben írod, ugyanazt a karakterkódlást kell tartalmaznia. Ha utf8-ban írod, akkor a html meta taget is állítsd be utf8-ra.

Valamint minden elemnek egyedi id-t kell kapnia. Tehát ha egy csoportba szeretnéd rendezni az inputokat, akkor használd a class attribútumot, id helyett.

"hacsak nem jön a jó tündér break utasítás képében..."

(#2336) Oly válasza Brown ügynök (#2335) üzenetére


Oly
senior tag

Így sem rak sortörést, és az ékezeteket sem szereti. :(

<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<head>
<script type="text/javascript">
function sendMail() {
var body = document.form1.s2.value;
body += document.form1.s3.value
var link = "mailto:valami&cc=valamimas&subject=targy&body="+body ; window.location.href = link; }
</script>
<title></title>
</head>
<body>
<form name="form1">
<input size="49" name="s1" id="sz1" type="text"><br>
<input size="49" name="s2" id="sz2" type="text"><br>
<input size="49" name="s3" id="sz3" type="text"><br>
<br>
<button onclick="sendMail(); return false">Send</button>
</form>
</body>
</html>

SonyEricsson T20 - T68 - T610 - K700 - W800 - K750 - K800 - C702 - P1 - MOTO Defy - Galaxy S Advance - Galaxy S4 - Lumia 820 - Honor 7 - iPhone 5S

(#2337) rt06 válasza Oly (#2336) üzenetére


rt06
veterán

a helyes kod:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function sendMail() {
var body = document.form1.s1.value;
body += "%0d%0a";
body += document.form1.s2.value;
body += "%0d%0a";
body += document.form1.s3.value
var link = "mailto:valaki@valami.hu?cc=valaki.mas@valami.mas.hu&subject=targy&body="+body;
window.location.href = link;
}
</script>
<title></title>
</head>
<body>
<form name="form1" action="">
<input size="49" name="s1" id="sz1" type="text"/><br/>
<input size="49" name="s2" id="sz2" type="text"/><br/>
<input size="49" name="s3" id="sz3" type="text"/><br/>
<br/>
<button onclick="sendMail(); return false">Send</button>
</form>
</body>
</html>

- a link osszerakasanal az elso & legyen ? kulonben azokat nem parameterkent kezeli
- a sortorest a hexa kodjaval tudod atadni url-ben
- a meta header a head-en belul kell, hogy legyen
- par egyeb aprosag, hogy valid legyen a kod (bar nem lett az, mert nem szereti a js-ben sem a & karaktert, de ezen csak az segitene, ha kiemelned kulon file-ba a script-et)

Politikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.

(#2338) Brown ügynök válasza Oly (#2336) üzenetére


Brown ügynök
senior tag

Ez legyen a HTML kód eleje:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu" >
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

A sortörésre pedig helyesbítek:

Közben leírták előttem. :)

Az ékezetes betűknél mi a gond? Nem jelenik meg rendesen?

[ Szerkesztve ]

"hacsak nem jön a jó tündér break utasítás képében..."

(#2339) Oly válasza rt06 (#2337) üzenetére


Oly
senior tag

Sziasztok

Így már van sortörés, de az ékezetek helyett ez jön be a levélben:
őúőúáű
áűáúáő

A külön filba rakást még nem vetettem el, főleg, hogy elég h osszúak lesznek a kódok, ha kész lesz.

És +1:
A From mezőt mivel tudom kitölteni? A From nem volt jó... :U

[ Szerkesztve ]

SonyEricsson T20 - T68 - T610 - K700 - W800 - K750 - K800 - C702 - P1 - MOTO Defy - Galaxy S Advance - Galaxy S4 - Lumia 820 - Honor 7 - iPhone 5S

(#2340) rt06 válasza Oly (#2339) üzenetére


rt06
veterán

nem tudom, mi lehet a gond, nekem mukodik ekezetekkel is (thunderbird - outlook-kal nem tudtam megnezni, az nincs)

a from-ra nincs otletem es nem is vagyok benne biztos, hogy ekeppen at lehet allitani (pl hiaba allitod at a kliens gepen, hogy a "kerdezo@valami.egeszen.mas.hu" cimrol kuldje a levelet, ha az o smtp szervere ezt visszadobja neki

Politikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.

(#2341) Oly válasza rt06 (#2340) üzenetére


Oly
senior tag

NEkem IE és Firefox alól sem megy az ékezet.

Eddig Excelből VB-vel oldottam ezt meg. Ott lehetett from-ot is csinálni.
Exchange szervert használunk, van lehetőség más (néhány) cím alól küldeni.

Olvastam valahol, hogy a htmlben is lehet VBA kódot használni. Ez megodlás lenne?
Vagy PHP?
azzal csak az a baj, hogy nem tudom egyszerűen egy hálózati meghajtóra helyezni, mint a JS-et. A VBA-t igen?

SonyEricsson T20 - T68 - T610 - K700 - W800 - K750 - K800 - C702 - P1 - MOTO Defy - Galaxy S Advance - Galaxy S4 - Lumia 820 - Honor 7 - iPhone 5S

(#2342) Oly válasza rt06 (#2340) üzenetére


Oly
senior tag

Jobbat mondok...

Van amikor működik, van amikor nem.
Semmit sem módosítottam, csak van, amikor jó, van amikor nem... :(

SonyEricsson T20 - T68 - T610 - K700 - W800 - K750 - K800 - C702 - P1 - MOTO Defy - Galaxy S Advance - Galaxy S4 - Lumia 820 - Honor 7 - iPhone 5S

(#2343) Oly válasza rt06 (#2340) üzenetére


Oly
senior tag

Tesztelgettem és van fejlemény.

PC-n:
Win7
IE8
Outlook 2007

Sima ügy. Mennek az ékezetek.

Terminal Server:
Win serv 2003
IE6, IE8
Outlook 2011

Nem megy... :O

Valami mást kell kitalálnom.

SonyEricsson T20 - T68 - T610 - K700 - W800 - K750 - K800 - C702 - P1 - MOTO Defy - Galaxy S Advance - Galaxy S4 - Lumia 820 - Honor 7 - iPhone 5S

(#2344) Peter Kiss válasza Oly (#2339) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Használj inkább latin2-es (8859-2)-es karakterkódolást, vagy egyenesen windows-1250-et. Szerintem utána rendben lesz minden.

(#2345) Oly válasza Peter Kiss (#2344) üzenetére


Oly
senior tag

És láss csodát! Múkod :R

SonyEricsson T20 - T68 - T610 - K700 - W800 - K750 - K800 - C702 - P1 - MOTO Defy - Galaxy S Advance - Galaxy S4 - Lumia 820 - Honor 7 - iPhone 5S

(#2346) Peter Kiss válasza Oly (#2345) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Csoda? :DDD

(#2347) Sk8erPeter válasza rt06 (#2337) üzenetére


Sk8erPeter
nagyúr

"- par egyeb aprosag, hogy valid legyen a kod (bar nem lett az, mert nem szereti a js-ben sem a & karaktert, de ezen csak az segitene, ha kiemelned kulon file-ba a script-et)"

Nem, van más megoldás is!

Hogy a Te kódod valid legyen, ahhoz csak jelezni kell a parser felé, hogy a JavaScript-kódot tartalmazó sorokat ne próbálja validálni, így:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
<!--//--><![CDATA[//><!--
function sendMail() {
var body = document.form1.s1.value;
body += "%0d%0a";
body += document.form1.s2.value;
body += "%0d%0a";
body += document.form1.s3.value
var link = "mailto:valaki@valami.hu?cc=valaki.mas@valami.mas.hu&subject=targy&body="+body;
window.location.href = link;
}
//--><!]]>
</script>
<title></title>
</head>
<body>
<form name="form1" action="">
<input size="49" name="s1" id="sz1" type="text"/><br/>
<input size="49" name="s2" id="sz2" type="text"/><br/>
<input size="49" name="s3" id="sz3" type="text"/><br/>
<br/>
<button onclick="sendMail(); return false;">Send</button>
</form>
</body>
</html>

Teszteld!

Egyébként annyit ehhez hozzátennék, hogy az ilyen document.form1 jellegű megoldásokat érdemes kerülni, inkább érdemes id szerint hivatkozni a mezőkre.

Szerk.: persze attól még érdemes a JavaScript-cuccokat is (ahogy a CSS-t is) külön fájlba rakni, hogy a böngésző szépen cache-elhesse az azt tartalmazó fájlt, ráadásul úgy egyébként is könnyebben karbantartható. Meg "szemantikailag" is szebb.

[ Szerkesztve ]

Sk8erPeter

(#2348) rt06 válasza Sk8erPeter (#2347) üzenetére


rt06
veterán

koszi az infot, ez meg jol johet
viszont a komment hatan komment megoldas az miert kell? valami ie hack?

Politikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.

(#2349) Oly válasza Sk8erPeter (#2347) üzenetére


Oly
senior tag

Köszi

ID-ra, hogy hivatkozzak?

SonyEricsson T20 - T68 - T610 - K700 - W800 - K750 - K800 - C702 - P1 - MOTO Defy - Galaxy S Advance - Galaxy S4 - Lumia 820 - Honor 7 - iPhone 5S

(#2350) rt06 válasza Oly (#2349) üzenetére


rt06
veterán

document.getElementById( <ide_jon_az_id> );

Politikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.

Copyright © 2000-2024 PROHARDVER Informatikai Kft.