apositivo Posted August 14, 2015 Share Posted August 14, 2015 saludos comunidad ! estamos realizando pruebas de comunicación en prestashop y estamos estudiando las limitantes, tenemos un modulo que nos genera un boton como el mostrado en la figura, funciona perfectamente, se comunica con nuestro controller via ajax y trae la informacion solicitada. ahora tenemos un nuevo reto, queremos saber si en ese metodo que se ejecuta via ajax al presionar el boton se le puede asignar contenido de un TPL vista del boton (archivo AJAX_DIV.jpg) <input type="text" id="id_data" value="1"/> <button id="ajax-data">Click para traer data via ajax</button> <div style=" border-style:dashed; border-color:#000000" id="contenido"> EN ESTE DIV SE MOSTRARA LA INFORMACION <BR> QUE VIENE VIA AJAX</div> codigo en ajax.js $(function() { $('#ajax-data').click(function() { var query = $.ajax({ type: 'POST', url: baseUri+'module/MyModule/ajax', data: 'method=myMethod&id_data=' + $('#id_data').val(), dataType: 'html', success: function(data) { console.log(data); } }); }); }); codigo en el controller: <?php // class: modulename+controllername+prarentclassname class MyModuleajaxModuleFrontController extends ModuleFrontController { public function initContent() { parent::initContent(); $this->ajax = true; // enable ajax } // respond json public function displayAjax() { if ($this->errors) die(Tools::jsonEncode(array('hasError' => true, 'errors' => $this->errors))); if(Tools::getValue('method')=='myMethod') { $sql = 'SELECT * FROM ps_product WHERE id_product = '.Tools::getValue('id_data'); $products = Db::getInstance()->ExecuteS( $sql ); $productObj = new Product($products['id_product']); /* aqui la duda ! como puedo pasar el $productObj al .TPL y devolverlo via ajax*/ $return $this->setTemplate('myinfoproducts.tpl'); } } } Link to comment Share on other sites More sharing options...
apositivo Posted August 21, 2015 Author Share Posted August 21, 2015 al agregar en el return echo json_encode($this->context->smarty->fetch(_PS_MODULE_DIR_ .'MyModule/views/templates/front/blocknewproducts.tpl')); FUNCIONO , solo que ahora trae la data en formato extraño "\r\n\r\n \r\n\t Novedades<\/a><\/h4>\r\n\t \r\n\t\t\t \r\n\t\t\t\t\t\t\t\t\t \"\"<\/a><\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t \"\"<\/a><\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/ul>\r\n\t\t \r\n\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 1<\/a><\/dt>\r\n\t\t\t 1<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t 1<\/a><\/dt>\r\n\t\t\t 1<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t 5<\/a><\/dt>\r\n\t\t\t 5<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t 1<\/a><\/dt>\r\n\t\t\t 1<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 1<\/a><\/dt>\r\n\t\t\t 1<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 1<\/a><\/dt>\r\n\t\t\t 1<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 4<\/a><\/dt>\r\n\t\t\t 4<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t d<\/a><\/dt>\r\n\t\t\t d<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 1<\/a><\/dt>\r\n\t\t\t 1<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t 4<\/a><\/dt>\r\n\t\t\t 4<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 1<\/a><\/dt>\r\n\t\t\t 1<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t n<\/a><\/dt>\r\n\t\t\t n<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t 1<\/a><\/dt>\r\n\t\t\t 1<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t 1<\/a><\/dt>\r\n\t\t\t 1<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t b<\/a><\/dt>\r\n\t\t\t b<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t 2<\/a><\/dt>\r\n\t\t\t 2<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t 2<\/a><\/dt>\r\n\t\t\t 2<\/a> Leer m\u00e1s<\/a><\/dd>\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 1<\/a><\/dt>\r\n\t\t\t 1<\/a> Read m\u00e1s<\/a><\/dd>\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 2<\/a><\/dt>\r\n\t\t\t 2<\/a> Read m\u00e1s<\/a><\/dd>\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 0<\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 1<\/a><\/dt>\r\n\t\t\t 1<\/a> Read m\u00e1s<\/a><\/dd>\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t 3<\/a><\/dt>\r\n\t\t\t 3<\/a> Read m\u00e1s<\/a><\/dd>\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t\t <\/a><\/dt>\r\n\t\t\t\t\t\t\t<\/dl>\r\n\t\t Link to comment Share on other sites More sharing options...
tamu secreto Posted August 22, 2015 Share Posted August 22, 2015 (edited) json_encode: Retorna la representación JSON del valor dado, o sea Devuelve un string con la representación JSON del valor pasado. usted esta pasando : json_encode (todo el bendito archivo tpl); if(isset(Tools::getValue('method'))) { $sql = 'SELECT * FROM ps_product WHERE id_product = '.Tools::getValue('id_data'); $products = Db::getInstance()->ExecuteS( $sql ); $productObj = new Product($products['id_product']); $this->context->smarty->assign(array( 'methods' => Tools::jsonEncode(Tools::getValue('method')), )); $return $this->setTemplate('myinfoproducts.tpl'); } ma o meno asi, saludos Edited August 22, 2015 by tamu secreto (see edit history) Link to comment Share on other sites More sharing options...
apositivo Posted August 24, 2015 Author Share Posted August 24, 2015 usted esta pasando : json_encode (todo el bendito archivo tpl); cual es la mejor via para traerse todo con AJAX Y MOSTRARlo ESTIMADO AMIGO ? Link to comment Share on other sites More sharing options...
tamu secreto Posted August 24, 2015 Share Posted August 24, 2015 si quiere mostrar un archivo, creo que la menor opcion es jquery incluso para enviar variables. El metodo .load() se usa para cargar algo, no recuerdo pero creo que esta deprecated en las ultimas versiones, sin embargo se sigue usando :-( lea esto: http://api.jquery.com/load/ para enviar las variables o formularios use jquery. saludos Link to comment Share on other sites More sharing options...
apositivo Posted August 24, 2015 Author Share Posted August 24, 2015 (edited) hola tamu secreto lo que buscamos es traer productos por demanda, tal como el modulo blocklayered ( http://fo.demo.prest....com/en/3-women ). en ese modulo se traen N cantidad de productos VIA AJAX, bueno en el ejemplo no se mira el efecto, ya que solo existen 7 productos, pero si tienes prestashop instalado configura que se muestren 2 o 3 productos y podras visualizarlo. ejemplo de contenido que se carga a peticion: http://addons.prestashop.com/demo/FO9373.html Edited August 24, 2015 by apositivo (see edit history) Link to comment Share on other sites More sharing options...
tamu secreto Posted August 24, 2015 Share Posted August 24, 2015 (edited) ahora entiendo mejor. a ver, en este modulo: http://fo.demo.prestashop.com/en/3-women se usa un modo simple, aún que se la han embroyado bastante para algo que era mas simple. Los links con atributos no funcionan, es algo que cambio en unas de las versiones de prestashop (yo tambien tengo que actualizar esto en mis modulos!) otro punto sobre este modulo es que solo lista la imagen principal y luego carga los artibutos, el efecto es lindo, pero se podria hacer mucha mas carga si se discrimina por talle, color, etc. (a esto me referia cuando le dije en hacer algo mas complejo)... sobre este modulo: http://demo-is.studio-kiwik.fr/index.php?id_category=3&controller=category&id_lang=1#/page-4 Los links con atributos funcionan (cuando uno hace clic en uno de los colores...) Pero si observa los productos se repetin, llenan el vacio probacado por categoria, atributo (por decirlo de un modo simple), o sea la consulta entiende que hay por ejemplo 6 productos Printed Dress 31.20 Euros. en realidad hay uno con varios talles o colores (y cada uno de estos posee su stock o numero de disponibilidad que no entran en juego aqui!). en fin es una critica constructiva, pero uno parece copia del otro, seguramente al segundo se le adiciono el plugin jquery infity scroll. Pero no se tuvo en cuenta el detalle que imprime varias veces un mismo producto. voy ver si logro un infinity scroll para el home de una tienda prestashop. ¿usted donde desea mostrar esto? saludos Edited August 24, 2015 by tamu secreto (see edit history) Link to comment Share on other sites More sharing options...
apositivo Posted August 25, 2015 Author Share Posted August 25, 2015 por los momentos son pruebas en locales, es que me llamo la atencion ese efecto de scroll infinito y me puse en fase de investigacion y desarrollo , crear un modulo desde cero que haga eso , si lo logro publico la version sin costo alguno. el curso de modulos desde cero lo estoy realizando aqui http://flowcoding.com/module-with-ajax Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now