Jump to content

[Solucionado] Combobox en registro de usuarios


Recommended Posts

Buenas, quiero hacer lo siguiente para que los clientes a la hora de registrarse seleccionen este formulario. Es un combobox de 3 niveles, provincias, localidades, centros.

 

http://libreria.tulibrodefp.es/centros/

 

Hay 3 tablas con la información de los 3 campos.

 

ps_provincias con los campos id, provincias

ps_localidades con los campos id, relacion, localidades

ps_centros con los campos id, relacion, centros

 

Y cuando el usuario seleccione se ha de enviar con su infromación, tengo creados 3 campos en ps_customers que son provcentros, localcentros, centros

 

Fuera como veis funciona a la perfección, pero no se como añadirlo al formulario de registro de prestashop.

 

Gracias

Edited by djmortis (see edit history)
Link to comment
Share on other sites

Bueno es que si necesita algo de codigo, para darte una idea, debes agregar a smarty las variables que vas a manipular ahi, puedes generarlas en el archivo AuthController.php ya sea en el core o en override, tambien podrias generarlas mediante un modulo.

Si lo haces mediante modulo, pues podrias añadirle el js que te ayudaria a hacer las selecciones, tal como funciona actualmente el de paises > provincias

Link to comment
Share on other sites

Solucionado, no es la mejor forma, pero es la única que se, pedi presupuesto y al final me pedían entre 100 y 400€, así que decidí intentarlo yo aunque me costará la vida, xDD

 

En authentification.tpl añado...

<script type="text/javascript">
function slctr(texto,valor){
this.texto = texto
this.valor = valor
}
var valencia=new Array()
valencia[0] = new slctr('- -Valencia- -')
valencia[1] = new slctr("Sedavi",'sedavi')
valencia[2] = new slctr("Alfafar",'alfafar')
 
 
var alicante=new Array()
alicante[0] = new slctr('- -Alicante- -')
alicante[1] = new slctr("Elda",'elda')
alicante[2] = new slctr("Novelda",'novelda')
 
//*******Nietos*******************
var sedavi = new Array()
sedavi[0] = new slctr('- -Sedavi- -')
sedavi[1] = new slctr("centro 1 sedavi",null)
sedavi[2] = new slctr("centro 2 sedavi" ,null)
 
var alfafar = new Array()
alfafar[0] = new slctr('- -Alfafar- -')
alfafar[1] = new slctr("alfafar",null)
alfafar[2] = new slctr("alfafar",null)
 
var elda = new Array()
elda[0] = new slctr('- -Elda- -')
elda[1] = new slctr("Centro 1 Elda",null)
elda[2] = new slctr("Centro 2 Elda" ,null)
 
var novelda = new Array()
novelda[0] = new slctr('- -Novelda- -')
novelda[1] = new slctr("Centro 1 Novelda",null)
novelda[2] = new slctr("Centro 2 Novelda" ,null)
 
function slctryole(cual,donde){
if(cual.selectedIndex != 0){
donde.length=0
cual = eval(cual.value)
for(m=0;m<cual.length;m++){
var nuevaOpcion = new Option(cual[m].texto);
donde.options[m] = nuevaOpcion;
if(cual[m].valor != null){
donde.options[m].value = cual[m].valor
}
else{
donde.options[m].value = cual[m].texto
}
}
}
}
</script>
 
<form name="form1" method="post" action="">
<select name="select" onchange="slctryole(this,this.form.select2)">
<option>- - Seleccionar - -</option>
<option value="valencia">valencia</option>
<option value="sedavi">sedavi</option>
</select>
<select name="select2" onchange="slctryole(this,this.form.select3)">
<option>- - - - - -</option>
</select>
<select name="select3">
<option>- - - - - -</option>
</select>
</form>

Después en ps_customer creo los campos select, select2 y select3

 

En AuthController.php añado...

$select = $_POST['select'];
$select2 = $_POST['select2'];
$select3 = $_POST['select3'];
 
$customer->select = $select;
$customer->select2 = $select2;
$customer->select3 = $select3;

 

$this->context->cookie->customer_select = $customer->select;

$this->context->cookie->customer_select2 = $customer->select2;

$this->context->cookie->customer_select3 = $customer->select3;

 

 

$select= Tools::getValue('select'); 

$select2= Tools::getValue('select2'); 

$select3= Tools::getValue('select3');

 

Y en customer.php

public $select;
public $select2;
public $select3;
 
'select' =>  array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),
'select2' =>  array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),
'select3' =>  array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),

Solucionado. :)

Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...