Hola de nuevo amigos de Foros del Web,paso a explicarles el problema que tengo: Tengo un Formulario que esta formado por 5 campos:Tipo,Subtipo,Detalle,Monto,Observacion. Los tres primeros son combo box. De ellos les voy a hablar
Cuando yo selecciono una opcion de mi primer combo box(Tipo) deberia mostrarme(dependiendo de la opcion que escoga en el primer combo) una serie de opciones en mi combo Subtipo.. Pero me sale el sgte error:
Código:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4
Ahora, lo que he hecho es imprimir la variable que almacena la consulta para saber con mas detalle en que parte me sale el error,y cuando hago eso me arroja lo sgte:
Código:
select d2.movimientoClase_id,d2.movimientoClase_nombre from movimientoclase d1 INNER JOIN movimientoclase d2 ON d1.movimientoClase_id=d2.movimientoClase_filiacion where d2.movimientoClase_tipo = 'OUT' and d2.movimientoClase_filiacion = You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4
A continuacion les coloco el codigo:
Formulario:
Código:
<tr cellspacing="0" class="ewTable">
<form action="#" method="post" onsubmit="return buscarcliente()">
<td width="130" class="ewTableHeader">Tipo : </td>
<td colspan="3"><select id="movimientotipo" onchange='listarSubtipoEgresos()'>
<?php foreach($listaTipoEgreso as $egresoTipo) :?><option value="<?php echo $egresoTipo->getMovimientoClase_id() ?>"><?php echo $egresoTipo->getMovimientoClase_nombre()?></option><?php endforeach; ?>
</select>
<!--<a href="clientelistop.php?width=400&height=200" rel="sexylightbox">ss</a>-->
</td>
</form>
</tr>
<!--<tr>
<td class="ewTableHeader">Campo 1 : </td>
<td colspan="3"><select id="area" onchange='mostrar_conceptos()' name="concepto">
<?php foreach($array_categoria as $a) :?><option value="<?php echo $a['id']?>"><?php echo $a['nombre'] ?></option><?php endforeach;?>
</select>
</td>
</tr>-->
<tr>
<td class="ewTableHeader">Sub-Tipo : </td>
<td colspan="3"><select id="movimientosubtipo" onchange='listarDetalleEgresos()'>
<?php foreach($listarSubtipoEgresos as $egresoSubtipo) :?><option value="<?php echo $egresoSubtipo->getMovimientoClase_id() ?>"><?php echo $egresoSubtipo->getMovimientoClase_nombre()?></option><?php endforeach; ?>
</select>
</td>
</tr>
<tr>
<td class="ewTableHeader">Detalle : </td>
<td colspan="3"><select id="movimientodetalle" name="movimientodetalle">
<?php foreach($listarDetalleEgresos as $egresoDetalle) :?><option value="<?php echo $egresoDetalle->getMovimientoClase_id() ?>"><?php echo $egresoDetalle->getMovimientoClase_nombre()?></option><?php endforeach; ?>
</select>
</td>
</tr>
Funcion listarSubtipoEgresos() (javascript)
Código:
function listarSubtipoEgresos()
{
movimientotipo=$("#movimientotipo").attr("value");
$.ajax({ type: "GET", url: "Controlador/MovimientoClase/listarSubtipoEgresos.php?movimientotipo="+movimientotipo,
data: null, success: function(data){
document.getElementById("movimientosubtipo").parentNode.innerHTML=data;
} });
}
listarSubtipoEgresos.php
Código:
<?php
session_start();
require_once("../../ewcfg7.php");
include_once DIR_APLICACION."Logic/MovimientoClaseLogic.php";
$listarSubtipoEgresos=MovimientoClaseLogic::listarSubtipoEgresosTipo($_GET["tipoegresoid"]);
?>
<select id="movimientosubtipo" onchange='listarDetalleEgresos()'>
<?php if(count($listarSubtipoEgresos)>0) { ?>
<?php foreach($listarSubtipoEgresos as $egresoSubtipo) :?><option value="<?php echo $egresoSubtipo->getMovimientoClase_id() ?>"><?php echo $egresoSubtipo->getMovimientoClase_nombre()?></option><?php endforeach; ?>
<?php } else { ?> <option value="0">No Existen Subtipos</option> <?php } ?>
</select>
Funcion listarDetalleEgresos() (javascript)
Código:
function listarDetalleEgresos()
{
movimientosubtipo=$("#movimientosubtipo").attr("value");
$.ajax({ type: "GET", url: "Controlador/MovimientoClase/listarDetalleEgresos.php?movimientosubtipo="+movimientosubtipo,
data: null, success: function(data){
document.getElementById("movimientodetalle").parentNode.innerHTML=data;
} });
}
listarDetalleEgresos.php
Código:
<?php
session_start();
require_once("../../ewcfg7.php");
include_once DIR_APLICACION."Logic/MovimientoClaseLogic.php";
$listarDetalleEgresos=MovimientoClaseLogic::listarDetalleEgresosSubtipoTipo($_GET["tipoegresoid"]);
?>
<select id="movimientodetalle" name="movimientodetalle">
<?php if(count($listarDetalleEgresos)>0) { ?>
<?php foreach($listarDetalleEgresos as $egresoDetalle) :?><option value="<?php echo $egresoDetalle->getMovimientoClase_id() ?>"><?php echo $egresoDetalle->getMovimientoClase_nombre()?></option><?php endforeach; ?>
<?php } else { ?> <option value="0">No Existen Detalles</option> <?php } ?>
</select>
MovimientoClaseLogic.php: archivo donde realizo las consultas. La consulta donde me indica el error es aquella que se encuentra en el metodo
public static function listarSubtipoEgresosTipo($tipoegresoid).Aqui les pongo los metodos que contienen las tres consultas que me van a permitir mostrar los datos en los combos que he mencionado anteriormente. (Les pusiera todo el codigo pero me sale el error "el texto que has ingresado es muy largo"(este es error de la pagina foros del web,ya que no permite muchos caracteres ok)
Código:
<?php
//namespace Logic;
require_once(DIR_APLICACION."bdconexion.php");
require_once(DIR_APLICACION."Entidad/MovimientoClase.php");
//use Entidad\MovimientoClase;
class MovimientoClaseLogic
{
public static function listarTipoEgresos(){
$sql="select movimientoClase_id,movimientoClase_nombre from movimientoclase
where movimientoClase_tipo = 'OUT' and movimientoClase_filiacion IS NULL";
//conexion::getInstance()->consulta("select id,nombre from movimiento_tipo where nombre = 'Servicios' or nombre = 'Administrativos' or nombre = 'Gastos de Representacion' or nombre = 'Bancos' or nombre = 'Planilla' or nombre = 'Impuestos'");
$res = bdconexion::getInstance()->consulta($sql);
$listarTipoEgresos = array();
if(count($res >0)){
foreach($res as $item):
$movimientoClase = new MovimientoClase();
$movimientoClase->setMovimientoClase_id($item[0]);
$movimientoClase->setMovimientoClase_nombre($item[1]);
$listarTipoEgresos[]=$movimientoClase;
endforeach;
}
return $listarTipoEgresos;
}
public static function listarSubtipoEgresosTipo($tipoegresoid)
{
$sql="select d2.movimientoClase_id,d2.movimientoClase_nombre
from movimientoclase d1 INNER JOIN
movimientoclase d2 ON d1.movimientoClase_id=d2.movimientoClase_filiacion
where d2.movimientoClase_tipo = 'OUT' and d2.movimientoClase_filiacion = $tipoegresoid";
echo "$sql";//aqui hago la impresion de mi consulta
$res = bdconexion::getInstance()->consulta($sql);
$listarSubtipoEgresos = array();
if(count($res > 0))
{
foreach($res as $item):
$movimientoClase = new MovimientoClase();
$movimientoClase->setMovimientoClase_id($item[0]);
$movimientoClase->setMovimientoClase_nombre($item[1]);
$listarSubtipoEgresos[]=$movimientoClase;
endforeach;
}
return $listarSubtipoEgresos;
}
public function listarDetalleEgresosSubtipoTipo($tipoegresoid)
{
$sql="select d2.movimientoClase_id,d2.movimientoClase_nombre
from movimientoclase d1 INNER JOIN
movimientoclase d2 ON d1.movimientoClase_id=d2.movimientoClase_filiacion
where d2.movimientoClase_tipo = 'OUT' and d2.movimientoClase_filiacion = $tipoegresoid";
$res = bdconexion::getInstance()->consulta($sql);
$listarDetalleEgresos = array();
if(count($res > 0))
{
foreach($res as $item):
$movimientoClase = new MovimientoClase();
$movimientoClase->setMovimientoClase_id($item[0]);
$movimientoClase->setMovimientoClase_nombre($item[1]);
$listarDetalleEgresos[]=$movimientoClase;
endforeach;
}
return $listarDetalleEgresos;
}
}
?>
}
Espero que me puedan ayudar. Por favor