Ok mira... creo que tu no me has captado...
PHP se ejecuta en el server, por lo tanto no podes hacer uso de las funciones, onclick o similares para asignar variables de sesion. Las variables de sesion unicamente pueden ser asignadas del lado del servidor.
Esto significa que a fuerza, debes de tener una pagina que reciba ese valor. Y tenes que pasarselo de alguna manera.... las formas mas simples son usando un get, o un POST si no queres que se muestre en la URL... O en el mas complicado de los casos, armar una tabla de hash de cada codigo... y luego enviar el valor de parametro como ese hash, y buscar el codigo correspondiente en la tabla.
Siempre siempre, vas a tener que enviar el ID, o un indice que te permita identificar que el usuario ha realizado un cambio en la aplicacion.
Lo que dice aqui nuestro compañero comuniter es lo correcto... de la manera que tu lo quieres hacer no se puede.... ya que automaticamente la pagina cuando la refresques... siempre caera con el valor de 2.. y esto pk como php interpreta linea por linea....
En otras palabras cuando PHP esta interprentando linea por linea y encuentra el <?php session['op']=1, automaticamente procede a registrarlo en variables de session, y cuando llega a la siguiente linea <?php session['op']=2 el server vuelve asignarle valor a la variable en session sin haber esperado que el cliente ejecute la accion de onclick.
Por lo tanto lo que deseas realizar no es valido... tendria q pasar variables a la siguiente pagina para q te pueda funcionar.
espero te sirva de algo... y puedas aplicar una de las soluciones planteadas anteriormente por los otros miembros