No sé si es así a propósito o se trata de un error, pero...
    
Código javascript
:
Ver originalif (req.readyState == 4 ){
    if (req.status == 200){
        document.getElementById ('content_div').innerHTML = req2.responseText;
    }
}
  
...estás comprobando esto: 
Si 
req ha terminado y 
req ha terminado bien, entonces
 -> leo la respuesta de 
req2 
No parece tener mucho sentido, ¿no? 
Quiero decir, debería ser...    
Código javascript
:
Ver originalif (req2.readyState == 4 ){
    if (req2.status == 200){
        document.getElementById ('content_div').innerHTML = req2.responseText;
    }
}
  
Para leer la respuesta de 
req2, lo que tiene que haber terminado es 
req2.