Szerző Téma: AJAX  (Megtekintve 36076 alkalommal)

0 Felhasználó és 1 vendég van a témában

Nem elérhető tomi6230i

  • Törzstag
  • **
  • Hozzászólások: 344
Re: AJAX
« Válasz #503 Dátum: 2011. március 04., 19:36:57 »
Lehet, hogy én nézek el valamit, de nem értem, hogy elején még xmlhttp objektummal babrálsz, utána meg req objektummal. req helyett is írj xmlhttp-t.

Nem elérhető gabor22

  • Felhasználó
  • Hozzászólások: 52
Re: AJAX
« Válasz #502 Dátum: 2011. március 04., 19:00:27 »
JS konzol mit ír ki?

Semmit, nem tölti be, nem csinál semmit.

Nem elérhető tbence

  • Globális moderátor
  • Teljes tag
  • *****
  • Hozzászólások: 1.131
    • TBence.hu
Re: AJAX
« Válasz #501 Dátum: 2011. március 04., 18:52:54 »
JS konzol mit ír ki?

Nem elérhető gabor22

  • Felhasználó
  • Hozzászólások: 52
Re: AJAX
« Válasz #500 Dátum: 2011. március 04., 18:47:33 »
Sziasztok!

Mi lehet a baj?
Nem tölti be.

Kód: Javascript
  1. <script type="text/javascript">
  2. function loadXMLDoc()
  3. {
  4. var xmlhttp;
  5. if (window.XMLHttpRequest)
  6. {// code for IE7+, Firefox, Chrome, Opera, Safari
  7. xmlhttp=new XMLHttpRequest();
  8. }
  9. else
  10. {// code for IE6, IE5
  11. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  12. }
  13. xmlhttp.onreadystatechange=function()
  14. {
  15. if (xmlhttp.readyState==4 && xmlhttp.status==200)
  16. {
  17. document.getElementById("aj").innerHTML=xmlhttp.responseText;
  18. }
  19. }
  20. params="x=12"; // Itt nem értem a php-s játékodat
  21.  
  22. req.open("POST", "megrendeles-ajax.php", true);
  23. req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  24. req.setRequestHeader("Content-length", params.length);
  25. req.setRequestHeader("Connection", "close");
  26. req.send(params);
  27. }
  28. </script>

Nem elérhető Rimelek

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 8.941
    • rimelek.hu
Re: AJAX
« Válasz #499 Dátum: 2011. március 04., 10:03:32 »
Akkor ha minden igaz, az a base64-es kódolása
Nem, de azt kéne base64 -el kódolni ahhoz, hogy az src-be írhasd olyan formán. Példa

De ahogy írtam, elég az src-t változtatni:
Kód: Javascript
  1. document.getElementById('kepid').src="kepurl.php?"+new Date().getTime();
Vagy kapcsold ki a cache-t a képgeneráló fájlban
Kód: PHP (brief)
  1. header('Expires: 0');
  2. header('Pragma: no-cache');
  3. header('Cache-Control: no-cache, no-store, max-age=0, s-maxage=0, must-revalidate');
És akkor elég js-ben ennyi:
Kód: Javascript
  1. document.getElementById('kepid').src="kepurl.php";
Egyszerűen létezem, és lézengek a Földön,
mint idióta szellem, kinek kastélya a börtön.

Nem elérhető Keveqiah

  • Globális moderátor
  • Teljes tag
  • *****
  • Hozzászólások: 2.332
  • Kisb
    • Keveqiah
Re: AJAX
« Válasz #498 Dátum: 2011. március 03., 13:49:05 »
Igen, igen.. :D mivel nem sokat foglalkoztam ilyen olyan kódolásokkal, így lehet, sőt biztos, hogy félreérthető volt amit írtam.
No akkor megpróbálom leírni.
Adva van egy kép generátor, ami header-el adja vissza a generált képet. (Akkor ha minden igaz, az a base64-es kódolása) Ezt a kódhalmazt kellett volna egy kép src tagjába rakni, csak nem tudtam (tudom) hogyan. Remélem már érthetőbb volt a fogalmazásom. :D

Másolok egy kis kódot is..
Kód: Javascript
  1.                 $.ajax({
  2.                    type: "GET",
  3.                    url: "thumbv2.php",
  4.                    data: $url,
  5.                    success: function(msg){
  6.                      $("#preview").html(msg);
  7.                    }
  8.                  });
  9.  

az msg pedig
Idézet
�����JFIF���������;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90 ���C�     ���C   �������"�������������� �������}�!1AQa"q2���#B��R��$3br� .............stb stb
« Utoljára szerkesztve: 2011. március 03., 14:11:47 írta Keveqiah »
"Gonosz vagyok. Ez ugyebár nem hit dolga."
"Egy ember halála tragédia, ezrek halála statisztika."

Nem elérhető Rimelek

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 8.941
    • rimelek.hu
Re: AJAX
« Válasz #497 Dátum: 2011. március 03., 13:23:27 »
src attribútumába dobja vissza a kép headerrel kinyomott forrását,
Úgy érted az src-ben egy php  útvonala van amiben a képet legenerálod? Gondolom. Csak kicsit félreérthető amit írtál. Viszont akkor jó az, amit MadBence ajánlott. Sőt, szerintem elég csak a kép src-t megváltoztatni javascriptből.
de ekkor ugyebár vissza csak a kódolás jött,
A mi? Mégis base64-el kódolt kép forrásról van szó? Vagy mi az a kódolás?
Egyszerűen létezem, és lézengek a Földön,
mint idióta szellem, kinek kastélya a börtön.

Nem elérhető Keveqiah

  • Globális moderátor
  • Teljes tag
  • *****
  • Hozzászólások: 2.332
  • Kisb
    • Keveqiah
Re: AJAX
« Válasz #496 Dátum: 2011. március 03., 11:42:07 »
Egy bélyeg kép készítővel vacakoltam, ami ugye az img tag src attribútumába dobja vissza a kép headerrel kinyomott forrását, csak megjeleníteni nem tudtam. Legalábbis nem tudtam hogy kéne. De egy plusz fájl beiktatásával már szuperál.
Az első elképzelés az volt, hogy ajaxal meghívom a készítő fájlt felparaméterzve, de ekkor ugyebár vissza csak a kódolás jött, ami én nem tudok lekezelni. Legalábbis nem tudom hogyan kéne. Így közbeiktattam egy fájlt, ami a kép tagot dobja vissza. A kép tagban pedig a paraméterezett készítő fájlt hívom meg. Lehet, hogy túl komplikáltam, de ezt találtam a leg egyszerűbbnek egyenlőre. Viszont ha van más megoldás, szivesen fogadon, mivel tanulni soha nem árt. :)
"Gonosz vagyok. Ez ugyebár nem hit dolga."
"Egy ember halála tragédia, ezrek halála statisztika."

Nem elérhető <madbence />

  • Teljes tag
  • ***
  • Hozzászólások: 1.629
  • Twitterista :)
    • Blogom
Re: AJAX
« Válasz #495 Dátum: 2011. március 03., 11:27:22 »
ehhez szvsz nem is kell AJAX (XHR), js ad hozzá natívan jó szolgáltatást (new Image()), persze ha az az AJAX kérés nem csak a kép forrását adja vissza, nem szóltam. Amúgy olyankor érdemes data URI-ket használni, base64-ben kódolva a képet nem lesznek esetleg karakter gondok.
mi chuck norris email címe? gmail@chucknorris.com
Blog: napszemuvegbe.tumblr.com
Twitter: twitter.com/madbence

Nem elérhető Keveqiah

  • Globális moderátor
  • Teljes tag
  • *****
  • Hozzászólások: 2.332
  • Kisb
    • Keveqiah
Re: AJAX
« Válasz #494 Dátum: 2011. március 03., 08:44:15 »
Ammm, arra van valakinek ötlete, hogy egy phpval generált képet, ajaxal töltsek vissza? Mármint a megfelelő paraméterek átadása után a php legenerálja a képet és headerrel visszaadja. Viszont így csak a ( JFIF� ) forrást kapom meg.

Megoldva.. megtrükköztem. :)
« Utoljára szerkesztve: 2011. március 03., 09:07:04 írta Keveqiah »
"Gonosz vagyok. Ez ugyebár nem hit dolga."
"Egy ember halála tragédia, ezrek halála statisztika."

Nem elérhető pixi

  • Törzstag
  • **
  • Hozzászólások: 611
    • http://pixy.hu/Ujoldal
Re: AJAX
« Válasz #493 Dátum: 2011. március 02., 23:08:46 »
A pár hsz-el előbbi hasonló problémám megoldódott.
Itt is form-ból szeretnék az oldal frissítése nélkül, egy keresőprogramot elindítani, ami el is indul, de a $kerszo változót érték nélkül adja át.

 cimlap.php

Kód: PHP
  1. echo "                         
  2. <form action='#' method='POST'  onsubmit=\"indit('Text/keres.php?kerszo=$kerszo', 'kozep', 'ksz'); return false; \">
  3.         <input id='ksz'  type='text' name='kerszo'>
  4.         <input style='font: 11px arial' type='submit' name='ok' value='Keres'>
  5. </form>";

A hozzá tartozó js fájl :

Kód: Javascript
  1. var divid;
  2. function indit(url, id) {
  3.         divid = id;
  4.         var args = arguments;
  5.         if( args[2] ) {
  6.                 par = document.getElementById(args[2]);
  7.                 if( par ) {
  8.                         par = par.value ;
  9.                         $.post(url, { text: par}, function(data) {
  10.                                 $("#" + divid).html(data);
  11.                         });
  12.                         return;
  13.                 }
  14.                 else par = "";
  15.         }
  16.         else par = "";
  17.        
  18.         var xmlHttpG;
  19.         xmlHttpG = new XHConn();
  20.         if (xmlHttpG == null)
  21.         {
  22.                 return;
  23.         }
  24.         xmlHttpG.connect(url, "POST", par, vege);
  25. }
  26.  
  27. function vege(oXML)
  28. {
  29.         vissza = oXML.responseText;
  30.         $("#" + divid).empty();
  31.         $("#" + divid).append(vissza);
  32. }


Nem elérhető tomi6230i

  • Törzstag
  • **
  • Hozzászólások: 344
Re: AJAX
« Válasz #492 Dátum: 2011. február 25., 09:55:45 »
Most már POST-tal van küldve, nálam működik minden böngészőben. GET-tel amikor küldtem valamelyik böngésző kódolta az ékezetes karaktereket az URL-ben, valamelyik nem.
De nagyon érdekes, hogy valakinél lippog, valakinél Chromeban is van hiba, valakinél IE-ben el sem küldi, vagy elküldi és eltűnik...

Nem elérhető ThompsoN

  • Törzstag
  • **
  • Hozzászólások: 554
  • ThompsoN
Re: AJAX
« Válasz #491 Dátum: 2011. február 24., 20:13:11 »
A karakteres probléma Chromeban is jelentkezik. Ha minden utf8, akkor nem lehet, hogy az adatbázisba/ból rosszul kerül be/ki az adat? Az is utf8?
Elküldve:: 2011. Február 24.  20:04:42
Illetve php-ban (ha nincs), akkor szúrd be ezt:
header("Content-Type: text/html; charset=UTF-8");
Nekem már emiatt is volt bajom a karakterekkel.
ThompsoN

Nem elérhető Rimelek

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 8.941
    • rimelek.hu
Re: AJAX
« Válasz #490 Dátum: 2011. február 24., 19:51:42 »
IE8 -ban elküldöm, megjelenik. Legörgetek hogy lássam, eltűnik. Frissítéskor előjön, és eltűnik ismét. Nagyon furcsa. De most nem tesztelem tovább. Így is virtuális gépbe léptem be ezért.
Egyszerűen létezem, és lézengek a Földön,
mint idióta szellem, kinek kastélya a börtön.

Nem elérhető tomi6230i

  • Törzstag
  • **
  • Hozzászólások: 344
Re: AJAX
« Válasz #489 Dátum: 2011. február 24., 11:27:33 »
Az ajaxos POST küldést megtalálod, ha picit lejjebb görgetsz az oldalon. Bár ez valószínűsíthető volt, mivel ez az AJAX téma :P
Megtaláltam.
Nekem IE8-ban nem is frissítette a tartalmat, csak a div csúszott vissza a tetejére.
Ez nagyon érdekes, ugyanis nekem frissítette a tartalmat, és a div nem csúszott vissza a tetejére, pedig szintén IE8.
A div scrollozásra megint lehet találni neten megoldást. scrollTop értékének változtatását.
Köszi, megnézem.
Karakterkódolás hiba nem szokott lenni, ha UTF-8 minden fájlod és html. De meg lehet adni még űrlapnak is accept-charset -et. És setRequestHEader metódussal még a header-ben is megadható a karakterkódolás.
Egyetlen fájlom van, és az UTF-8. A form elemnek megadtam accept-charset="UTF-8", az sem segített. ajaxreq.setRequestHeader("Content-type","text/html; charset=utf-8"); sem segített.
Illetve a cachelést kikapcsolhatod. Vagy küldj valami random url-t ( aktuális idő ). Akkor IE-kben is mindig frissül a tartalom.
IE-ben nem frissül mindig a tartalom?