Avatar billede grafik-anders Seniormester
02. august 2011 - 20:41 Der er 23 kommentarer og
1 løsning

billedekvaliteten er dårlig og hvordan gemmer jeg al data på en side?

Hej

Jeg er ved at arbejde videre med mit projekt og har stødt ind i nye vanskeligheder.

Man kan se min seneste arbejdsside her: http://www.shape.dk/test-opret.php

1)
Det går midt sagt ikke godt med billedekvaliteten, når man oploader billeder. Skyldes det, at jeg er for nærig til at investere i et dyrt webhotel?

2)
Hvordan laver jeg en kode, som gemmer indholdet i mine form'er lige meget, hvad man trykker på?
Avatar billede majbom Novice
02. august 2011 - 21:02 #1
hvordan resizer du dine billeder?

hvad mener du med "lige meget, hvad man trykker på"?
Avatar billede grafik-anders Seniormester
02. august 2011 - 22:02 #2
Hej

Den ser sådan her ud:


<?php
list($bredde, $hojde) = getimagesize("mitbillede.jpg"); //Find højden og bredden på det billede jeg vil resize
$forhold = $hojde/$bredde; //Hvor stor er højden i forhold til bredden?

//Find den nye højde og bredde
$bredde_ny = 100;
$hojde_ny = round($bredde_ny*$forhold);

//Load/opret billeder
$source = imagecreatefromjpeg("mitbillede.jpg");
$destination = imagecreate($bredde_ny, $hojde_ny);

//Resize
imagecopyresized($destination, $source, 0, 0, 0, 0, $bredde_ny, $hojde_ny, $bredde, $hojde);

//Gem
imagejpeg($destination, "nyfil_resized.jpg");
?>


Jeg har snuppet den fra: http://www.phpartikler.dk/artikler/gdresize.php

Det jeg mener med, at den skal gemme lige meget hvad man trykker på er at - hvis du kigger på min side - så er der en del muligheder for at rette elementerne. Når man har rettet et og derefter trykker på et andet, for at rette det, så skal den automatisk gemme den første selvom, at man ikke selv har trykket på gem. hmm,,, var det kryptisk? Spørg igen, hvis det var?

Jeg vil gerne undgå, at brugeren oplever, at han/hun fylder noget i form'sne (hedder de det i flertal?) uden at det bliver gemt, hvis brugeren glemmer at trykke gem efter at have udfyldt form'sne.

/Anders

/A
Avatar billede michael_stim Ekspert
02. august 2011 - 22:13 #3
Avatar billede majbom Novice
02. august 2011 - 23:09 #4
nogen bestemt grund til at du resizer dine billeder på serveren?

du kunne gemme formularen ved onblur-eventen på de relevante felter...
Avatar billede grafik-anders Seniormester
03. august 2011 - 21:04 #5
splazz >
nix, - jeg gør det, som jeg gør fordi, at har jeg lært af min tutorial.

Hvordan gør jeg det ved onblur-eventen og hvad er det?

undskyld min uvidenhed, men jeg vil gerne lære :)

/Anders
Avatar billede majbom Novice
04. august 2011 - 06:46 #6
hvorfor ikke resize dine billeder inden du ligger dem op?

<input type="text" onblur="alert('du forlod feltet');">


onblur er den event der bliver kørt når man forlader feltet...
Avatar billede grafik-anders Seniormester
04. august 2011 - 20:11 #7
Det er ikke til mig selv, men til forhåbentligt en masse lykkelige brugere, som skal bruge mit site.
Der er planen, at man skal kunne oprette profiler med billeder.
Avatar billede grafik-anders Seniormester
04. august 2011 - 20:19 #8
Jeg kan se, at der nok er mere i det end først antaget. Derfor har jeg oprettet et separat spørgsmål ang. at gemme mine former med mange forskellige links på samme side.

Du finder det her: http://www.eksperten.dk/spm/944336#reply_7818549

/AB
Avatar billede majbom Novice
04. august 2011 - 20:27 #9
prøv at kig på den her: http://www.eksperten.dk/guide/1200

den har jeg benyttet mig af flere gange, jeg synes kvaliteten er fin
Avatar billede grafik-anders Seniormester
04. august 2011 - 21:38 #10
splazz> den der onblur ser spændende ud, men kan man få den til andet end at sende en advarsel? - kan man få den til at gemme til en database?

Linket til det med billederne vil jeg lige tjekke ud, men det ser også spændende ud!
Avatar billede grafik-anders Seniormester
04. august 2011 - 22:05 #11
Jeg har lige testet koden til det med billederne og det ser bestemt også lovende ud!
Avatar billede majbom Novice
05. august 2011 - 07:05 #12
selvfølgelig kan du kalde andet end en alert, ellers gav det jo ikke meget mening at foreslå dig den.

du kan evt. kalde en javascript-funktion der gør hvad du gerne vil have til at ske...
Avatar billede grafik-anders Seniormester
05. august 2011 - 17:26 #13
splazz> ja, - jeg er jo helt nybegynder og ved derfor ikke helt, hvordan jeg skal gøre det.

Noget i retning af (?):


<input name="navn" type="text" onblur="submitform('navnGem')">


Hvordan fortæller jeg 'systemet' hvor der er klikket, så jeg kan ændre knappen, som der er klikket på?

og så et javascript (?):


function submitform(form) {
  document.forms[form].submit();
}


Jeg har selv forsøgt at lave en kode, som gør det ved at kombinere POST med GET. Jeg hentede indholdet af formen med POST og fortalte, hvilket link, som der var klikket på, med GET.


Ja, - jeg er lidt lost, må jeg nok indrømme
Avatar billede grafik-anders Seniormester
05. august 2011 - 17:27 #14
Mit eget forsøg ligger her: http://www.shape.dk/form.php
Avatar billede majbom Novice
05. august 2011 - 18:35 #15
det er faktisk et par okay forslag du kommer med :)

men ville det ikke være lidt upraktisk at den submitter formen når du forlader et textfelt? ellers skulle det bare være det sidste felt i formularen.

du kan bruge:

<input type="text" onblur="this.form.submit();" name="navn">
Avatar billede grafik-anders Seniormester
05. august 2011 - 19:32 #16
jo, - det er ikke praktisk. Jeg kan ikke vide hvilket link, som jeg har trykket på?

Jeg kan ikke se, hvordan dit sidste forslag kan afhjælpe mit problem?
Avatar billede majbom Novice
05. august 2011 - 19:39 #17
nej, men så skal du nøjes med at lave eventen på den sidste textbox evt.
Avatar billede grafik-anders Seniormester
05. august 2011 - 19:45 #18
Men så er det jo kun den, som bliver gemt?

Hvis du ser mit eksempel, så har jeg jo flere, som jeg gerne vil have bliver gemt uafhængig af hinanden. Brugeren skal have lov til at forlade siden og gøre noget andet uden at udfylde det hele. De eneste box'e, som skal være forbundet på den måde er email, pass1 og pass2.

tjek det ud på: http://www.shape.dk/form.php
Avatar billede grafik-anders Seniormester
05. august 2011 - 19:56 #19
Den kode, som er brugt på siden, virker næsten, som jeg gerne vil have den til, men det er noget primitivt.

Prøv at tryk på knapper 'Ret' for at se, hvad der sker?

Det Javascript, som jeg bruger, gemmer formerne som POST og den videregiver info om, hvilken knap, som der sidst er trykket på, så grafikken kan ændre sig i forhold til det. Problemet med koden er, at javascriptet får siden til at loade to gange, hvilket jeg kun delvist kan afhjælpe ved lidt kreativ brug af $_SESSION. Jeg kan bare ikke få de to check-marks til virke på den måde og det er i det hele taget noget primitivt. Javascriptet hedder:


function submitform(elmA,getKode) {
  var dims= elmA.getAttribute("href"),
  sPosQuery = "edit=" + getKode;
  dims += (dims.indexOf("?")>-1 ? "&" : "?") + sPosQuery;
  elmA.setAttribute("href", dims);
  document.forms["editAll"].submit();
}


Alle felterne ligger i samme form og ser for eksempel sådan her ud:


<input name="userName" type="text" class="overSkrift" value="<? echo $userName ?>">
<br><a href="form.php" class="edit" onclick="submitform(this,'navnGem')">Gem</a><br><br>


Hvis man kan lave et javascript, som ikke får siden til at genopfriske to gange, men kun en og alligevel videregive både GET og POST, så vil jeg kunne få det til at virke, men måske er der også en langt bedre måde at lave det hele på?

/Anders
Avatar billede majbom Novice
06. august 2011 - 08:43 #20
hvad er det du gerne vil have til at ske?

hvis du bruger mit kode-eksempel #15 på dit sidste input i formen, vil den submitte hele formen. hvor den input er i...
Avatar billede grafik-anders Seniormester
06. august 2011 - 09:59 #21
Jeg har faktisk fået koden til at virke nu, da jeg har erstattet mine checkmarks med et par 'almindelige' link-knapper ('nyheder' og 'abonner'). Det hele kører dog stadig lidt bøvlet, da mit javascript stadig får siden til at genindlæse to gange i stedet for bare en. Derfor skal siden stadig lægge værdierne fra GET over i en SESSION efter første indlæsning, så den kan bruge informationerne, når siden er genindlæst for anden gang. Her skal sidens indhold justeres efter det.

jeg vil gerne have den til at gøre to ting:

1) at submitte på alle mine former på lige meget hvilken knap, som du trykker på.

2) at der bliver videregivet information om, hvor der er trykket, når siden bliver genindlæst. Så kan jeg bruge indformationen til at ændre, hvilke knapper og former, som skal være synlige, når siden er genindlæst.

Jeg kan prøve at beskrive et eksempel på en måde at bruge siden:

a) når man trykker på knappen 'Ret' ved feltnavnet 'Navn', så bliver et editerbart felt synligt og knappen 'Ret' ændre sig til 'Gem'.

b)Man kan nu ændre navnet ved at skrive i feltet, men man kan også gemme indholdet ved at trykke på knappen 'Ret' nederst på siden - altså uden at trykke på knappen 'Gem' lige under feltet 'Navn'.

c) Efter man har trykket på knappen 'Ret' nederst, så ændre knappen 'Gem' ved feltet 'Navn' sig tilbage til 'Ret' og i stedet ændre knappen 'Ret' nederst på siden sig til 'Gem' og der fremkommer et nyt editerbart felt, som man kan skrive i.

d) Man kan herefter igen vælge at gemme sine ændringer i det nederst felt enten ved at trykke på knappen 'Gem' nederst på siden, men man kan også gemme ved at trykke på en af den andre knapper på siden. Forskellen er, at ved at trykke på knappen 'Gem' nederst på siden, så forsvinder alle de editerbare felter og alle knapper bliver ændret til 'Ret'. Hvis du derimod trykker på en af 'Ret'-knapperne, så åbner det tilhørende felt og knapper ændre sig til 'Gem'.

Alt dette med undtagelserne ved 'Nyheder' og 'abonner', som begge skifter mellem ja og nej, men lige ledes kan bruges til at gemme indhold af alle felter.

Ja, - det blev lidt langt - sorry, men det er lidt svært at forklare min funktion.

Hvis min forklaring er svær at forstå, så prøv at udfør beskrivelsen på siden og se, hvordan det virker.

Som sagt virker siden faktisk nu, som jeg gerne vil have den til, men det giver mig stadig lidt bøvl, at siden genindlæser to gange, hver gang, man gemmer indformation.

Jeg tror, at man kunne løse mit problem med et nyt Javascript, som kun får siden til at genindlæse én gang. Det var det script, som jeg sendte med sidste kommentar. Det kan også være, at der kan være en anden løsning?

/Anders



/Anders
Avatar billede majbom Novice
06. august 2011 - 18:53 #22
for at det ikke bliver page-reload skal du nok overveje at starte på noget ajax, som kan sende indholdet af formularen i baggrunden.

prøv at google "ajax form"
Avatar billede grafik-anders Seniormester
06. marts 2012 - 20:58 #23
Hej alle

Jeg fik løst det med billedkvaliteten, det andet blev jeg aldrig helt færdig med, men jeg synes, at det er fair for alle, at jeg får lukket dette spørgsmål.

Til det formål skal jeg bruge nogle svar :)

Vær venlige at send!?

/Anders
Avatar billede majbom Novice
07. marts 2012 - 08:12 #24
hvordan løste du problemet med billedekvaliteten?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester