¿Cómo puedo validar un formulario en AngularJs al momento enviarlo?

Soy novato en AngularJs y necesito que se me valide un formulario al momento en el que el usuario selecciona “Enviar” (y no a medida que vaya completando los campos). Para resumir el formulario, en este ejemplo solo muestro un mensaje si el usuario no ingresa ningún nombre. El código que tengo es el siguiente.

En mi HTML

    <body ng-app="miApp" ng-controller="miCtrl">      <form ng-submit="aceptarPaciente()" name="f" novalidate>           <input type="text" name="nombre" placeholder="Nombre (*)" ng-model="paciente.nombre" ng-required="true">                <div class="messages" ng-show="f.nombre.$  invalid && f.nombre.$  touched">                      <strong>Se debe ingresar un nombre</strong>                </div>           <button type="submit">Aceptar</button>           <button type="button" ng-click="limpiarPaciente(f)">Limpiar</button>      </form> </body> 

En mi Controlador

    angular.module("miApp",[])     .controller("miCtrl", function($  scope){     $  scope.limpiarPaciente = function(f) {     $  scope.paciente = {};      };     $  scope.aceptarPaciente() {     }}) 

Como dije antes, el código funciona a medida que el usuario rellena los campos pero no es lo que estoy necesitando.

El $ scope.aceptarPaciente del controlador lo deje vacío porque es ahí donde tengo que hacer la validación (o por lo menos es lo que creo).

Nota: Para la solución de este problema, ya no iría el f.nombre.$ touched que ingresé ya que no tendría sentido esto porque el evento que se ejecutará si los campos están bien (o no) es el ng-submit=”aceptarPaciente()”

¿Para que usa una uri android al momento de tener que enviar una intent a un componente?

Estoy estudiando intents en android y tengo este código:

Uri webpage = Uri.parse("http://hermosaprogramacion.blogspot.com"); Intent webIntent = new Intent(Intent.ACTION_VIEW, webpage); startActivity(webIntent); 

Comprendo que lo que hará android es buscar las aplicaciones que tengan componentes que permitan la acción de tipo ACTION_VIEW y de esta manera desencadenar la acción.

  • ¿Como sabe android que lo que se quiere hacer es abrir una pagina web en x aplicación? haciendo uso de la uri?, ¿Como sabe android que es lo que quiere decir la uri?, ¿es decir como sabe que hacer con ella? cuando se va a comunicar con un componente mediante un intent

  • Por ejemplo si hay varias aplicaciones candidatas para hacer la
    acción lo que hace android es mandar un menú de opciones y la app que el usuario elija sera la que se designe para recibir el intent,
    entonces en ese proceso ya cuando se eligio el componente y todo ¿Que papel juega la uri y como la usa android? y en el caso del ejemplo que puse arriba ¿Como sabe que se quiere abrir una pagina web? ¿Como sabe que es lo que tiene que hacer con esa url?

Error al momento de validar un usuario en mi pagina web (php)!

quisiera realizar una consulta, lo que pasa es que estoy realizando una pagina web sobre denuncias y ya la tengo almacenada en un hosting, pero al momento de loguear un usuario, ese proceso pasa por un validar el cual no me funciona correctamente, ya que cuando el usuario introduce sus datos, debería mandarlo al menú principal de la pagina, pero no lo hace se queda en el validar (trabado, en blanco) ¿A que se deberá ese problema?

Les dejo el codigo de validar.php:

<?php  //include("connect_db.php");  //$  miconexion = new connect_db;  session_start();  require("connect_db.php");  $  username=$  _POST['mail'];  $  pass=$  _POST['pass'];  //la variable $  mysqli viene de connect_db que lo traigo con el require("connect_db.php");  $  sql2=mysqli_query($  mysqli,"SELECT * FROM login WHERE email='$  username'");  if($  f2=mysqli_fetch_assoc($  sql2)){  if($  pass==$  f2['pasadmin']){  $  _SESSION['id']=$  f2['id'];  $  _SESSION['user']=$  f2['user'];  $  _SESSION['rol']=$  f2['rol'];  echo '<script>alert("BIENVENIDO ADMINISTRADOR")</script> ';  echo "<script>location.href='admin.php'</script>";  }  }  $  sql=mysqli_query($  mysqli,"SELECT * FROM login WHERE email='$  username'");  if($  f=mysqli_fetch_assoc($  sql)){  if($  pass==$  f['password']){  $  _SESSION['id']=$  f['id'];  $  _SESSION['user']=$  f['user'];  $  _SESSION['rol']=$  f['rol'];  header("Location: Bienvenido.php");  }else{  echo '<script>alert("CONTRASEÑA INCORRECTA")</script> ';  echo "<script>location.href='index.php'</script>";  }  }else{  echo '<script>alert("ESTE USUARIO NO EXISTE, PORFAVOR REGISTRESE PARA PODER INGRESAR")</script> ';  echo "<script>location.href='index.php'</script>";  }  ?> 

Demostración que pagina queda en blanco después del logueo:

introducir la descripción de la imagen aquí

Duplicacion de datos al momento de guardar C#

Tengo un pequeño inconveniente al momento de hacer el guardado en segundo plano se realiza el traspaso de información de una tabla quincenal a otra tabla histórica, al realizar el primer guardado funciona sin problema y cumple lo propuesto , pero si vuelvo a realizar un segundo guardado inmediatamente se duplica la información.

  private void administrativoToolStripMenuItem6_Click(object sender, EventArgs e)     {         string connstring = ConfigurationManager.ConnectionStrings["Trabajo"].ToString();         using (SqlConnection conn = new SqlConnection(connstring))         {             conn.Open();             string query = "select [id_empl],[cedu_empl],[dias_empl],[dias_vac_empl],[per_empl],[suelquin_empl],[otros_empl],[bon_empl],[transporte_empl],[fdr_val]" +             ",[fdr_empl],[dec_val],[deciter_empl],[decicua_empl],[reintegro_empl],[cert_med_empl],[vacaci_empl],[iess_empl],[prestempr_empl]" +             ",[consumoce_empl],[cadena_empl],[aire_spli_empl],[naviplan_empl],[comprastc_empl],[ventipp_empl],[presthipo_empl],[camaron_empl]" +             ",[prestquiro_empl],[almuer_empl],[genes_empl],[multa_empl],[otrosd_empl],[extsal_empl],[imp_ren_empl],[empldome_empl],[suem_empl],[fecha_empl] from TBL_ROL_ADM";             SqlCommand cmd = new SqlCommand(query, conn);             SqlDataAdapter da = new SqlDataAdapter(cmd);             da.Fill(dt);         }         if (dt.Rows.Count == 0)         {             MessageBox.Show("Base de Datos TBL_ROL_ADMIN Vacia Llene los Datos Necesarios Para Continuar ", "SISROL", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);         }         else         {             cierreroles();             MessageBox.Show("Proceso de Cierre Terminado Satisfactoriamente", "SISROL", MessageBoxButtons.OK, MessageBoxIcon.Information);         }     } 

Y este el método cierreroles que me realiza el guardado a la tabla histórica y posteriormente elimina la información en la tabla quincenal.

 public void cierreroles()         {             string connstring = ConfigurationManager.ConnectionStrings["trabajo"].ToString();             using (SqlConnection conn = new SqlConnection(connstring))             {                                 string query = "INSERT INTO HIS_ROL_ADM ([id_empl],[cedu_empl],[dias_empl],[dias_vac_empl],[per_empl],[suelquin_empl],[otros_empl],[bon_empl],[transporte_empl],[fdr_val]"+                 ",[fdr_empl],[dec_val],[deciter_empl],[decicua_empl],[reintegro_empl],[cert_med_empl],[vacaci_empl],[iess_empl],[prestempr_empl]"+                 ",[consumoce_empl],[cadena_empl],[aire_spli_empl],[naviplan_empl],[comprastc_empl],[ventipp_empl],[presthipo_empl],[camaron_empl]"+                 ",[prestquiro_empl],[almuer_empl],[genes_empl],[multa_empl],[otrosd_empl],[extsal_empl],[imp_ren_empl],[empldome_empl],[suem_empl],[fecha_empl],[reg_empl])" +                  " VALUES (@id_empl,@cedu_empl,@dias_empl,@dias_vac_empl,@per_empl,@suelquin_empl,@otros_empl,@bon_empl,@transporte_empl,@fdr_val"+                 ",@fdr_empl,@dec_val,@deciter_empl,@decicua_empl,@reintegro_empl,@cert_med_empl,@vacaci_empl,@iess_empl,@prestempr_empl,@consumoce_empl"+                 ",@cadena_empl,@aire_spli_empl,@naviplan_empl,@comprastc_empl,@ventipp_empl,@presthipo_empl,@camaron_empl,@prestquiro_empl,@almuer_empl"+                 ",@genes_empl,@multa_empl,@otrosd_empl,@extsal_empl,@imp_ren_empl,@empldome_empl,@suem_empl,@fecha_empl,@reg_empl)";                 string queryd = "DELETE FROM TBL_ROL_ADM ";                 SqlCommand cmd = new SqlCommand(query, conn);                 SqlCommand cmdd = new SqlCommand(queryd, conn);                 foreach (DataRow row in dt.Rows)                 {                     cmd.Parameters.Clear();                     cmd.Parameters.AddWithValue("@id_empl", Convert.ToInt32(row["id_empl"]));                                         cmd.Parameters.AddWithValue("@cedu_empl", Convert.ToString(row["cedu_empl"]));                     cmd.Parameters.AddWithValue("@dias_empl", Convert.ToDecimal(row["dias_empl"]));                     cmd.Parameters.AddWithValue("@dias_vac_empl", Convert.ToDecimal(row["dias_vac_empl"]));                     cmd.Parameters.AddWithValue("@per_empl", Convert.ToString(row["per_empl"]));                     cmd.Parameters.AddWithValue("@suelquin_empl", Convert.ToDecimal(row["suelquin_empl"]));                     cmd.Parameters.AddWithValue("@otros_empl", Convert.ToDecimal(row["otros_empl"]));                     cmd.Parameters.AddWithValue("@bon_empl", Convert.ToDecimal(row["bon_empl"]));                     cmd.Parameters.AddWithValue("@transporte_empl", Convert.ToDecimal(row["transporte_empl"]));                     cmd.Parameters.AddWithValue("@fdr_val", Convert.ToDecimal(row["fdr_val"]));                     cmd.Parameters.AddWithValue("@fdr_empl", Convert.ToDecimal(row["fdr_empl"]));                     cmd.Parameters.AddWithValue("@dec_val", Convert.ToDecimal(row["dec_val"]));                     cmd.Parameters.AddWithValue("@deciter_empl", Convert.ToDecimal(row["deciter_empl"]));                     cmd.Parameters.AddWithValue("@decicua_empl", Convert.ToDecimal(row["decicua_empl"]));                                         cmd.Parameters.AddWithValue("@reintegro_empl", Convert.ToDecimal(row["reintegro_empl"]));                     cmd.Parameters.AddWithValue("@cert_med_empl", Convert.ToDecimal(row["cert_med_empl"]));                     cmd.Parameters.AddWithValue("@vacaci_empl", Convert.ToDecimal(row["vacaci_empl"]));                     cmd.Parameters.AddWithValue("@iess_empl", Convert.ToDecimal(row["iess_empl"]));                     cmd.Parameters.AddWithValue("@prestempr_empl", Convert.ToDecimal(row["prestempr_empl"]));                     cmd.Parameters.AddWithValue("@consumoce_empl", Convert.ToDecimal(row["consumoce_empl"]));                     cmd.Parameters.AddWithValue("@cadena_empl", Convert.ToDecimal(row["cadena_empl"]));                     cmd.Parameters.AddWithValue("@aire_spli_empl", Convert.ToDecimal(row["aire_spli_empl"]));                     cmd.Parameters.AddWithValue("@naviplan_empl", Convert.ToDecimal(row["naviplan_empl"]));                     cmd.Parameters.AddWithValue("@comprastc_empl", Convert.ToDecimal(row["comprastc_empl"]));                     cmd.Parameters.AddWithValue("@ventipp_empl", Convert.ToDecimal(row["ventipp_empl"]));                     cmd.Parameters.AddWithValue("@presthipo_empl", Convert.ToDecimal(row["presthipo_empl"]));                     cmd.Parameters.AddWithValue("@camaron_empl", Convert.ToDecimal(row["camaron_empl"]));                     cmd.Parameters.AddWithValue("@prestquiro_empl", Convert.ToDecimal(row["prestquiro_empl"]));                     cmd.Parameters.AddWithValue("@almuer_empl", Convert.ToDecimal(row["almuer_empl"]));                     cmd.Parameters.AddWithValue("@genes_empl", Convert.ToDecimal(row["genes_empl"]));                     if (row["multa_empl"] == null || Convert.ToString(row["multa_empl"]) == "" || row["multa_empl"].Equals("null"))                     {                         cmd.Parameters.AddWithValue("@multa_empl", 0);                     }                     else if (row["multa_empl"] != null)                     {                         cmd.Parameters.AddWithValue("@multa_empl", Convert.ToDecimal(row["multa_empl"]));                     }                     cmd.Parameters.AddWithValue("@otrosd_empl", Convert.ToDecimal(row["otrosd_empl"]));                     if (row["extsal_empl"] == null || Convert.ToString(row["extsal_empl"]) == "" || row["extsal_empl"].Equals("null"))                     {                         cmd.Parameters.AddWithValue("@extsal_empl", 0);                     }                     else if (row["extsal_empl"] != null)                     {                         cmd.Parameters.AddWithValue("@extsal_empl", Convert.ToDecimal(row["extsal_empl"]));                     }                     if (row["imp_ren_empl"] == null || Convert.ToString(row["imp_ren_empl"]) == "" || row["imp_ren_empl"].Equals("null"))                     {                         cmd.Parameters.AddWithValue("@imp_ren_empl", 0);                     }                     else if (row["imp_ren_empl"] != null)                     {                         cmd.Parameters.AddWithValue("@imp_ren_empl", Convert.ToDecimal(row["imp_ren_empl"]));                     }                     if (row["empldome_empl"] == null || Convert.ToString(row["empldome_empl"]) == "" || row["empldome_empl"].Equals("null"))                     {                         cmd.Parameters.AddWithValue("@empldome_empl", 0);                     }                     else if (row["empldome_empl"] != null)                     {                         cmd.Parameters.AddWithValue("@empldome_empl", Convert.ToDecimal(row["empldome_empl"]));                     }                     cmd.Parameters.AddWithValue("@suem_empl", Convert.ToDecimal(row["suem_empl"]));                     cmd.Parameters.AddWithValue("@fecha_empl", Convert.ToDateTime(row["fecha_empl"]));                     cmd.Parameters.AddWithValue("@reg_empl", DateTime.Now);                       conn.Open();                     cmd.ExecuteNonQuery();                     conn.Close();                      cmdd.Parameters.Clear();                     conn.Open();                     cmdd.ExecuteNonQuery();                     conn.Close();                 }             }         } 

Que podría estar ejecutándose mal que me causa el error.

De antemano les agradezco por su ayuda.

Saludos.

Como mostrar un mensaje de Cargando Datos al momento de realizar una consulta?

Buen dia , Compañeros me podrían ayudar en como mostrar un mensaje cuando presiono el botón de consultar,estoy realizando una aplicación web en cual lleno un formulario de rango de fechas y selecciono el tipo de reporte que quiero que me genere , esa parte ya la realiza lo que ahora quiero es mostrar un mensaje de “Cargado datos…” y me bloquee la pantalla para que el usuario visualice que esta trabajando en ello ya que a la hora de realizar las consultas tarda un tiempo en regresarme la información, encontré una forma de que bloquee la pantalla usando unos scripts pero cuando presiono el boton y me falta algun campo se muestra el div de cargando y ya no lo puedo quitar hasta que yo refresque la pagina la aplicacion esta hecha en asp mvc .

<div id="fader" style="display:none"> <div class="centrar">     <img src="~/Content/images/Load-Engrane.gif" class="center-block" />     <p class="text-center" style="font-size:medium">Espere un momento, generando informacion...</p> </div> 

$  ("#btnEnviar").click(function () {              $  ('#fader').css('display', 'block');      }); 

Me da error al momento que cargué el servidor de rails

El proyecto es de ruby on rails, tiene un crud sencillo pero se realizó desde un computador diferente y fue ingresado a GitHub y al momento de descargarlo en mi ordenador hice “bundle install” todas las gemas que tiene el proyecto fueron instaladas correctamente, cuando ejecute el “rails s” el servidor se ejecutó correctamente, cuando lo abrí en el navegador me aparecio este error:

PD: El proyecto utiliza la gema pg (postgres)

Error de database

¿como hacer que al momento de ingresar datos a la base de datos se actualice en la vista?

Tengo una aplicación móvil donde simulo un banco, al momento de realizar un deposito(Que es otra actividad) lo guarda en la base de datos y entonces cree un método para que me regresara los datos del deposito y mostrarlo en un textview(MainActivity). Mi problema es que no veo reflejado el deposito en el textview hasta que entre a otra pestaña de la aplicación y regrese a la MainActivity. Nota: El metodo lo mando a llamar en el onCreate.

Metodo para mandar a traer los datos:

 public void movementsIngresos() {      String action = "http://localhost:8000/depositos";     JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, action, null, new Response.Listener<JSONObject>() {         @Override         public void onResponse(JSONObject response) {              try {                  JSONArray mJsonArray = response.getJSONArray("results");                 for (int i = 0; i < mJsonArray.length(); i++) {                     //Globals.category = new String[mJsonArray.length()];                     JSONObject mJsonObject = mJsonArray.getJSONObject(i);                    deposito += mJsonObject.getInt("cantidad");                 }              } catch (JSONException e) {                 e.printStackTrace();             }         }     },              new Response.ErrorListener() {                 @Override                 public void onErrorResponse(VolleyError error) {                  }             }){         @Override         public Map getHeaders() throws AuthFailureError {             HashMap headers = new HashMap();             headers.put("X-Requested-With", "XMLHttpRequest");             headers.put("Authorization", "XXXXXX"));             return headers;         }      };     queue.add(request); }