Seu formulário
onsubmit parece estar errado. no envio deve ser uma função javascript não é um arquivo php . se você precisar enviar para o arquivo php, você deve usar action atributo de form . atualmente você o deu como report.php . pode ser necessário alterá-lo para yearpdf.php ou redirecionar no report.php EDIÇÃO 1:
o problema é que você está chamando o
window.open que abre um URL, mas não envia seu valor de entrada. então na primeira vez nada vai acontecer. mas no próximo window.open ou na próxima atualização, há a variável de sessão do report.php e assim recupera os dados. você pode seguir algumas opções - coloque o código do report.php para processar o submit em yearpdf.php e mude o formulário "action" para yearpdf.php. e remova a função onclick
- OU Redirecione de report.php para yearpdf.php no final de report.php. Para redirecionar você pode usar
header('Location:https://www.yoursite.com/ anopdf.php ');. e remova a função onclick - OU modifique seu código JavaScript para enviar algo assim
window.open("yearpdf.php" + "?course_year=" + document.getElementsByName("course_year")[0].value)); e altere seu$r1=$_SESSION['year1'];para$r1=$_GET['course_year'];em yearpdf.php
A opção 1 é a forma recomendada e simples. A opção 2 é uma sobrecarga e não funcionará se você gerar qualquer html antes do redirecionamento. e a Opção 3 produz uma janela desnecessária.