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); ?>