Ciao,
dunque secondo me la cosa più "figa", veloce e pulita ed elegante è proprio usare una tecnica ajax.
Però.....se non conosci ajax e non hai voglia di studiarlo ora (ma prima o poi ti consoglio di farlo)
la puoi risolvere in maniera più "casalinga" usando php + il tuo beneamato confirm javascript, anche in una stessa pagina.
esempio:
te lo scrivo in pesudo codice tanto per dirti il procedimento logico
(sembra complesso ma non lo è)
1) FORM HTML
-----------------------
hai la tua bella pagina con
- un form che punta alla pagina stessa (action="#")
il form a sua volta contiene:
a) un input con il dato che vuoi inserite nel db
codice:
<input type="text" name="dato_da_inserire">
b) una input nascosto (per $valoreEsiste vedi poi il punto 3)
codice:
<input type="hidden" name ="esiste" value = "<?PHP echo $valoreEsiste ?>>"
c) un bottone - che non spedisce il form, ma chiama un funzione javascript
codice:
<BUTTON type="button" onClick="testInsert();">
2)FUNZIONE JAVASCRIPT
------------------------
ora cosa succede ?
nel momento del click la funzione testInsert( ) controlla il valore dell'input "esiste"
codice:
IF == 'SI'
chiama un confirm javascript che dice "il dato esiste vuoi sovrascriverlo?"
IF 'OK' THEN
"esiste".value='NO' (fai finta che non esista)
form.submit(); (e spedisci il form)
ELSE return; (non succede niente)
ELSE
form.submit(); (se "esiste" vale NO o NI viene spedito il form)
3) CONTROLLO E SETTAGGIO PHP
-----------------------
a)inizializzi :
codice:
$valoreEsiste="NI";
b)Quando la pagina carica controlli sempre $_POST['esiste'];
codice:
IF ($_POST['esiste'] == 'NI') THEN controlli nel DB se $_POST['dato_da_inserire'] esiste
IF esiste THEN $valoreEsiste="SI"';
ELSE $valoreEsiste="NO"';
ELSE IF ($_POST['esiste'] == 'NO') scrivi (o sovrascrivi) nel database
nb: Il caso ($_POST['esiste'] == 'SI') perché quando viene inviato la funzione javascript lo filtra o settandolo a NO, o non inviando il form.
----
Naturalmente questo descritto è l'ordine logico, ma come codice scriverai
prima la funzione javascript nell' <haeder>
poi il controllo PHP
poi il form che utilizza $valoreEsiste settatto dal controllo php
al momento del caricamento la pagina legge $_POST['esiste']
'NI'