Lo podes buscar como chained combobox, la consulta a la db se utiliza php, js obtiene los datos pasados a json con la funcion json_decode y mostras los parametros con js. No es necesario hacer una consulta a la db si no es necesario, mira este plugin para jquery, podes generar la estructura html con php, bueno seria solo 1 consulta a la db para obtener las ciudades y provincias a mostrar.
Su sistema autentifica que se efectuo la compra y si efectivamente se realizo el pago le das acceso a esos archivos, paypal no hostea archivos que quieras vender(el acceso seguro de esos archivos dependen de vos).