Ciao, fai attenzione al corretto utilizzo degli apici.
A naso credo che l'errore sia qui:
codice:
echo '<button type="button" onclick="showUser('.$var1.', '.$var2.')">Test</button>';
Supponiamo che $var1="123"; e $var2="456";
anche se in PHP i valori sono espressi come stringa, lato client otterrai un codice risultante del genere :
codice:
<button type="button" onclick="showUser(123, 456)">Test</button>
Cioè i valori risultanti per Javascript sono in tutto e per tutto dei valori numerici.
In pratica, per JavaScript, quando inserisci dei valori numerici è "facoltativo" l'uso degli apici, ma chiaramente non lo è quando si tratta di valori stringa.
Supponiamo ora che $var1="abc"; e $var2="def";
lato client otterrai un codice risultante del genere :
codice:
<button type="button" onclick="showUser(abc, def)">Test</button>
Puoi notare tu stesso che, dal punto di vista dell'interprete JavaScript, quei due valori non sono propriamente dei valori ma bensì dei nomi-variabile.
Per risolvere ti basterà aggiungere opportunamente degli apici (con l'escape) in questo modo:
codice:
echo '<button type="button" onclick="showUser(\''.$var1.'\', \''.$var2.'\')">Test</button>';