Quella chiamata php viene eseguita solo alla prima visualizzazione della pagina, quando viene elaborata sul server, dopo non ha più alcun effetto perché quella riga diventacodice:<script> function on_callPhp() { var result="<?php php_func();?>"; // alert(result); return false; } ...
var result = "il_link_che_viene_preso_la_prima_volta";
result non contiene più una chiamata alla funzione php_func(), ma ciò che questa ha restituito alla prima esecuzione.
Prova a visualizzare il sorgente della pagina per rendertene conto, vedrai che nella pagina non c'è nemmeno la funzione php_func(), quella esiste solo nel momento in cui il file php viene interpretato la prima volta sul server.
Quella funzione va messa in un file php a se stante e poi chiamata tramite AJAX.
La funzione PHP non deve fare nulla di speciale, solo fare l'echo della stringa relativa all'immagine, il resto lo deve fare tutto AJAX, ovvero:
- inviare una richiesta al file contenente php_func()
- recuperare la risposta
- sostituire il link alla nuova immagine nel src del tag img
Per informazioni su AJAX, chiedi nella sezione Javascript, visto che è con quello che si fanno, ma intanto ti lascio un link
https://www.w3schools.com/php/php_ajax_php.asp

Rispondi quotando