ugrás a tartalomhoz

Archívum - Feb 2008 - Fórum téma

február 7

input text amnéziás lesz innerHTML használatakor

sirkalmi · 2008. Feb. 6. (Sze), 23.33
Szervusztok!

Van egy div-em amiben van pl. 2 db input text-em, amit a felhasználó már ki is töltött. Van egy onclick eseményre meghívódó innerHTML mely hozzáad a div-hez még egy input text-et. Az eredmény az, hogy az adott div-ben lévő input text mezők tartalma elvész! Csak FF-ban műveli ezt. Lehet ez ellen védekezni? Kínomban azt csinálom, hogy innerHTML előtt lementem egy tömbbe az input text mezők értékeit majd visszaírom, de összetettebb szerkezeteknél bonyolult ez!

Válaszokat nagyon köszönöm!

--
sirkalmi
 

Osztályhívás dinamikusan

deejayy · 2008. Feb. 6. (Sze), 20.56
Egy form adatokat küld egy php-nek. A formot egy osztály generálja le, ami ellátja a POST adatok feldolgozását is igény esetén.

Akarok csinálni egy handler tömböt, ami megfelelően megformázott POST paraméterek alapján meghívja a megfelelő osztály handler függvényét.

Azaz pl.

<input type='hidden' name='handler' value='loginhandler'>
Akkor én annak megfelelően, hogy van-e regisztrálva az osztályok között loginhandler, meg szeretném hívni az ő handler függvényét.

Tehát valami olyat csinálnék, hogy

$_POST['handler']::handleparams($_POST);
De ez ugye hibát ír.

Hogyan közelíthetném meg a problémát máshogy?

(tegyük fel, hogy 200 objektum kezelését kellene beregisztrálnom a handler-láncba, és if-then-else nem túl barátságos)
 

Miért csak második kattintásra működik a függvény?

Velias9 · 2008. Feb. 6. (Sze), 17.23
A problémám a következő:
Adott egy JavaScript kód:

...

function nyitogato(azonosito)
{
   if (document.getElementById(azonosito).style.display == "none")
   {
      document.getElementById(azonosito).style.display = "block";
   }
   else
   {
      document.getElementById(azonosito).style.display = "none";
   }
}

...
És egy HTML kód:

...

<a href="javascript:nyitogato('kinyitando')">Ide kattintva kéne kinyílnia</a>
<div id="kinyitando">Itt vannak az elrejtett elemek</div>

...
És a hozzá tartozó CSS:

...

#kinyitando
{
   display: none;
}

...
Amikor az oldal betöltődése után először kattintok a hivatkozásra nem történik semmi. Másodszorra viszont már működik.
Légyszíves segítsetek, nem tudom mi a baj.

Előre is köszi minden segítségért.
 

február 5

VB.NET dinamikus típus konverzió

halee · 2008. Feb. 5. (K), 14.53
Sziasztok,

Egy olyan kérdésem lenne, hogy hogyan tudom azt megoldani VB.NET-ben, hogy adott néhány osztályom közös szülőosztállyal, ezeket szépen belepakolom egy ArrayList-be, vagy bármely más listába és amikor végig iterálok a listán, akkor az aktuális elem render metódusát meghívva, na a szülő osztály render-e fusson le?

Régebben csináltam ilyet php-ben, ott ez teljesen sim ügy.

Egy rövid példakód, hogy mire gondolok:
...
public class base

public sub new()
end sub

public function render() as string
 return "Base"
end function

end class

public class child
 inherits base

public sub new()
 MyBase.new()
end sub

public function render() as string
 return "Child"
end function

end class

...

Dim lista as ArrayList = new ArrayList()

lista.add(new base())
lista.add(new child())

for i as integer=0 to lista.Count()-1
 Response.WriteLine(lista(i).render())
next


Ebben az esetben a kód ugyan lefut hiba nélkül, de mindkét esetben a base render metódusa fut.

Sajnos egyetlen lehetőséget találtam ennek kikerülésére, az pedig az, hogy egy select case-el a lista(i).GetType alapján szétválasztom és típuskényszerítem a különböző objektumokat. Ez viszont elég rugalmatlan sok különböző objektum esetén.

amire szükségem lenne, az logikailag így nézne ki:

(CType(lista(i),lista(i).GetType())).Render()


de ez sajnos nem működik...

Ha valaki tud erre a select case-nél rugalmasabb megoldást az pls help!

előre is köszi,
Halee
 

Dinamikus DIV IE-ben nem megy

hemu · 2008. Feb. 5. (K), 11.31
Sziasztok!
Bocs, hogy új témát nyitotam, de elég "egyedi" a bajom.
Adott egy kód:

	function createcp(name){
		layer = document.createElement("div");
		layer.id = name;
		layer.style.background = "#FFFFFF";
		layer.style.border = "1px solid black";
		layer.style.position = "absolute";
		layer.style.visbility = 'hidden';
		layer.style.top = yMousePos + "px";
		layer.style.left = xMousePos + "px";
		var colors = Array('FF','CC','00','99','66','33');
		if (!clrs){
			var clrs = Array();
			for (i = 0;i < colors.length;i++){
				for (j = 0;j < colors.length; j++){
					for (k = 0;k < colors.length; k++){
						clrs[clrs.length] = '#' + colors[i] + colors[j] + colors[k];
					}
				}
			}
		}
		tabla = document.createElement("table");
		tabla.cellSpacing = 0;
		tabla.cellPadding = 0;
		for (i=0;i<clrs.length;i++){
			if(i%18==0){
				TR=document.createElement("tr");
				TR.style.height = 10 + 'px';
				tabla.appendChild(TR);
			}
			TD = document.createElement("td");
			TD.style.cursor = "pointer";
			TD.style.width = 10 + 'px';
			TD.style.height = 10 + 'px';
			TD.style.border = '1px solid white';
			TD.bgColor = clrs[i];
			TD.onclick = function(){colorFormat(this.bgColor,name)};
			TD.onmouseover = function(){this.style.border = '1px solid black';};
			TD.onmouseout = function(){this.style.border = '1px solid white';};
			TD.innerText = " ";
			TR.appendChild(TD);
		}
		layer.appendChild(tabla);
		document.body.appendChild(layer);
		document.getElementById(name).style.visibility = 'visible';
	}
Ez FF-ben gyönyörűen működik, de IE-ben a layer 1x1 pixeles, ha pedig direktben belövöm a méretét 100x100-asra mondjuk, a színeket tartalmazó tábla nem látszik rajta.
Van tippetek, mitől lehet?
Ha kialertelem a tabla változó innerHTML-ét, akkor szépen látszik, hogy a tábla rendben legenerálódott.

Üdv:
hemu
 

Mi a baj a kódommal?

loader · 2008. Feb. 5. (K), 09.49
Sziasztok!
Van egy flash php kommunikációm, de csak egyirányú, nevlist.php:

<?php
include("db.php");
$nevek=mysql_query("select * from nevek");
while ($sor=mysql_fetch_array($nevek))
	{
	$nevek2 .=$sor["nev"]."\n";
}
$nevek3 = mb_convert_encoding($nevek2, "UTF-8");
print $nevek3;
?>
adatbázisból kiszedek egy halom nevet, amit "\n"-el elválasztok egymástól és a $nevek3-ba tárolom
flashben combo boxban jelenítem meg, action script:

myVars = new LoadVars();
myVars.load("nevlist.php");
myVars.onData = function(raw) {
        tmp = raw.split("\n");
        for(var i=0;i<tmp.length;i++) {

                tmp2 = tmp[i].split(":");
                nevek.addItem(tmp2[0], tmp2[1]);
        }
}
function traceCombo(nevek) {
	trace ("Selected Data: " + nevek.getSelectedItem().data);
}
a combo boxban meg is jelenik, de ha kiválasztok egy nevet, rányomok egy gombra, ami meghív egy másik php-t, nem adja át így: $neve = $_POST['nevek'];
a leyerre kell rakni az as-et vagy a comboboxra?
 

Sablon rendszerrel kapcsolatban kérnék segítséget

felyx · 2008. Feb. 5. (K), 04.31
A segítségeteket szeretném kérni, régóta foglalkoztat a gondolat, hogy egy sablon rendszert elkezdjek használni. Smarty-t egyszer megnéztem és biztos vagyok benne, hogy jó és használható, de miután eleget olvasgattam a témában úgy gondolom sokkal ésszerűbb php nyelven kezelni a sablonokat több szempontból is. A problémám abból adódik, hogy hiába töltöttem estéket azzal hogy utánajárjak annak, hogy php-ben hogyan tudnám megvalósítani ezt, nem sikerült megértenem jobban a hogyanját. Sajnos nem vagyok phpguru, de látom a pozitív oldalát a sablonoknak és ha valaki megtenné, hogy elmagyarázza, hogyan működik a sablon kezelés pontosan és mit érdemes tudnia egy ilyen rendszernek, akkor nagyon szépen megköszönném. Ha esetleg példákkal is meg tudná valaki mutatni azt is megköszönném, de nem várok kész megoldást, bár nem titkolom kerestem hasonló egyszerű rendszert, hogy az alapján sajátot írhassak. Furcsának tűnhet, hogy ha nem tudom hogyan is működik a dolog akkor miért akarom használni, no a válaszom az, hogy egyrészt a kinézetét az oldalnak könnyebben megtudnám változtatni, másrészt ha olyasvalakivel dolgozok együtt egy projecten aki nem programozó, akkor ne kelljen neki a php kóddal túl sokat foglalkoznia, csak alapvető dolgokat kelljen megmutatnom neki. Elnézéseteket kérem mindenesetre, mert tudom hogy ez a téma már sokszor felmerült, igyekeztem megoldást találni de sajnos már nemtudom hol keressem a választ. Segítségeteket előre is köszönöm.
 

február 4

PHP explode - <br> delete

PredMan · 2008. Feb. 4. (H), 21.59
Sziasztok!

törölni szeretném a <PRE> és </PRE> között lévő <br /> karaktereket, de nem megy! itt a kód:

$szoveg = nl2br($sor["leiras"]);

if(stristr($szoveg, "<PRE>") === FALSE) { }

else {
$ki=explode("<PRE>",$szoveg);
$veg=$ki[0];
foreach($ki as $sor)
    {
    $resz=explode("</PRE>",$sor);
    $veg.=str_replace("<br />"," ",$resz[0]).$resz[1];
    }

$szoveg == $veg;
}

echo $szoveg;
a böngésző forráskódja pedig a lefuttatás után:

<PRE>2001 - fsd: 45<br />
2002 - fsd: 45<br />
2003 - fs: 34<br />
<br />
fdsa</PRE>
A káosz a körülöttünk lévő ... szabályos.<br />
<PRE>2004 - f33sd: 344<br />
2005 - fsfff: 345</PRE>
tehát nem fut le a kód, <br /> -el van tele, ezeket is szeretném kitörölni, de nem akarja az igazságot!

tudnátok ebben nekem segíteni? előre is köszönöm!
 

Hogyan konvertáljak PDF-be úgy, hogy a képek ne legyenek kockásak?

xeras · 2008. Feb. 4. (H), 21.40
sziasztok,

előszöris szeretnék elnézést kérni,
mivel tudom nem passzol ide a téma,
de mást megbízható helyet nem ismerek,
így kényetelen voltam ide írni.

Tehát OpenOffice-szal konvertálok PDF-be,
beállítom, hogy amikor megnyílik az Acrobat
akkor teljes képernyős legyen a lap,
és így a képek kockásak leszenek.

Hogyan lehet ezen segíteni?

Nagyon szépen köszönöm.
 

Hogyan keressünk (fejlesztő) embert cégbe, csapathoz?

janoszen · 2008. Feb. 4. (H), 20.53
Kedves mindenki,

kiváncsi vagyok a véleményetekre. Sajnos előállt az a helyzet, hogy a PHP egy hiányszakma. Nagyon az. Még junior PHP fejlesztőt sem nagyon találunk, aki megütné a mércét.

Akit kapunk, azok nagyrésze vagy távmunkában szeretne dolgozni, vagy alapvető dolgokat sem tud.

Szerintetek, hol / hogyan kellene hatékonyan embert nagy céghez, teambe?

Köszi

János