Me encuentro haciendo algunas pruebas con JSON y me encontré con que en algunos resultados obtengo NULL.
La base de datos, tablas y filas las tengo en utf8_general_ci
Mi Script (Lo encontré en navegando y lo modifique según mis necesidades).
Básicamente en el Index tengo un dropbox con el cual selecciono una provincia, esta acciona llama a la función presionBoton que envía el valor del option selected al PHP indicando que provincia se selecciono para luego cargar los partidos y mostrarlos.
Lo tengo subido aquí para que vean como funciona http://standbypc.com.ar/pruebas/
Código Javascript :
addEvent(window,'load',inicializarEventos,false);
function inicializarEventos()
{
var ob=document.getElementById('provincias');
addEvent(ob,'change',presionBoton,false);
}
var conexion1;
function presionBoton(e)
{
var codigo=document.getElementById('provincias').value;
if (codigo!=0){
conexion1=crearXMLHttpRequest();
conexion1.onreadystatechange = procesarEventos;
conexion1.open('GET','pagina1.php?pro='+codigo, true);
conexion1.send(null);
}
}
function procesarEventos()
{
var resultados = document.getElementById("resultados");
if(conexion1.readyState == 4)
{
alert('Cadena en formato JSON: '+conexion1.responseText);
var datos=eval("(" + conexion1.responseText + ")");
var salida='';
for(f=0;f<datos.length;f++)
{
salida += 'Codigo:'+datos[f].id+"<br>";
salida += 'Descripcion:'+datos[f].valor+"<br>";
}
resultados.innerHTML = salida;
}
else
{
resultados.innerHTML = "Cargando...";
}
}
function addEvent(elemento,nomevento,funcion,captura)
{
if (elemento.attachEvent)
{
elemento.attachEvent('on'+nomevento,funcion);
return true;
}
else
if (elemento.addEventListener)
{
elemento.addEventListener(nomevento,funcion,captura);
return true;
}
else
return false;
}
function crearXMLHttpRequest()
{
var xmlHttp=null;
if (window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
else
if (window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
return xmlHttp;
}
Mi PHP es el siguiente
Código PHP :
<?php
require_once 'conexion.php';
$pro= $_GET['pro'];
$select[]=array(
'id'=>'0',
'valor'=>'Seleccionar...'
);
$partidos = mysql_query("SELECT * FROM partidos WHERE id_provincia='".$pro."'",$conexion);
while ($partido = mysql_fetch_array($partidos, MYSQL_ASSOC)){
if($partido['nombre']!="NULL"){
$opcion = array(
'id'=>$partido['id_partido'],
'valor'=>$partido['nombre']
);
array_push($select, $opcion);
}
}
echo json_encode($select);
?>
