Estoy creando un portal de anuncios clasificados y quiero evitar que pongan anuncios duplicados, para ello no voy a permitir que ni el título, ni la descripción se puedan poner si ya existen en la bd.
Lo que he visto para hacerlo es esto http://www.forosdelweb.com/f18/prevenir-registros-duplicados-php-249081/
Alguien sabe como podría hacerlo en tiempo real, es decir, que si escribo el título, al pasar al campo siguiente me salga un mensaje avisandome que ese texto ya existe y tengo que modificarlo.
Los títulos y descripción se escriben y va a ser algo dificil compararlos, más bien se podria comparar palabras, tal y como hace la web stackoverflow, cuando vas a poner el título aparecen preguntas similares. No es lo que quieres, pero de otra manera se van a subir anuncios duplicados (aunque no tengan el mismo título o descripción).
Para ello necesitarás Ajax (http://api.jquery.com/jquery.ajax/). Crea un script php que haga el select y compare (post o get). Luego haces otro script, con javascript o jquery para mandar el texto a comparar y, depende como lo quieras hacer, muestras o no el mensaje de error.
Nunca he hecho algo así en ajax, pero debe ser muy simple: El trigger podría ser el focus del campo de texto tal y como has dicho: al pasar al campo siguiente se le hace focus y puede usarse como trigger (activar el script).
$selector // body o parent
.on('focus.inputtext', function() {
// aquí harias el ajax request
// yo usaría post en lugar de get
})
.on('otro', 'selector', function() {
// si necesitas hacer cualquier otra cosa
});
Lo hago así porque si vas a trabajar con elementos dinamicos es mejor usar on() que siempre funciona.
Tendrás que pensar de que manera vas a comparar, no te recomiendo comparar solo el título entero.