Envio de dos formularios para agregar a base de datos

Tengo la siguiene situación y les solicito su ayuda para poderlos resolver, de antemano gracias por su ayuda

Tengo dos formularios form1 y form2, en el primero tom0 unos datos y realizo unos cálculos

<form id="form1"  method="post" action="<?php echo $  _SERVER['PHP_SELF']; ?>"> ...      <input type="submit" name="guardarcal" value="Guardar Datos" /> </form> 

En el formulario dos tomo unos valores propios de producto junto con los calculos que se hicieron en el primer formulario.

<form id="form2"  method="post" action="<?php echo $  _SERVER['PHP_SELF']; ?>"> ...      <input type="submit" name="guardarinfo" value="Guardar Datos" /> </form> 

Ahora bien, si yo les doy guardar por separado el codigo funciona como se espera y guarda la información a la tabla corerespondiente en la base de datos

if(!isset($  _POST["guardarcal"])) {   Guardar_Cal($  num_order); } 

Ok, aqui viene el problema, como pueden ver el codigo funciona cada cual por separado, pero lo mas práctico debe de ser que con un solo botón de salvar guarde los dos formualarios y esto es justamente lo que no he podido hacer, intenté con algo asi pero no ejecuta el codigo php para guardar en las tablas

<script> function envarfrn(){             document.getElementById("form1").submit().;  } 

Hay alguna forma de agregar el name del input del botón para que se pueda ejecutar el if del php ?, osea para que esto funcione

if(!isset($  _POST["guardarcal"])) {  

Guardar_Cal($ num_order); }

En otras palabras lo que necesito es guardar los dos formularios de una sola vez o con un mismo botón

De ante mano gracias por su ayuda

Envio de correo electrónico con SendGrid y React JS

Estoy desarrollando una aplicación web en ReactJS, la funcionalidad es que al momento de enviar el formulario se envíe un correo a quien ha llenado el formulario. He logrado hacerlo con express para usarlo de forma local, pero al momento de hacer deploy, he tenido este error, el API KEY lo generé de esta manera

introducir la descripción de la imagen aquí

Y al hacer la implementación, me sale este error

introducir la descripción de la imagen aquí

Quería saber si tienen otra herramienta que les sirvió o si han usado SendGrid y han visto este error al usarla.

ENVIO DE DATOS SESSION POR POST. NODE JS MONGODB EJS

Necesito pasar dos parametros. El DNI (con el cual el usuario se registro y el id del candidato al que votó.

La ruta buscada seria como por ejemplo:

http://localhost:3000/api/DNI/ID-CANDIDATO


Acá genere el formulario que enviara estos dos datos. Probe enviando el ID del candidato y anda perfecto. Me faltaria poder enviar el parametro DNI con el cual se logueo el usuario. Tenia pensado capturarlo de los datos de la sesion pero no se de que forma y si es la mas conveniente.

                <% locals.candidatos.forEach((item) => { %>                      <li class="col-12 col-md-6 col-lg-3">                         <div class="cnt-block equal-hight" style="height: 349px;">                             <img class="img img-fluid d-block mx-auto rounded img-thumbnail" src="<%= item.foto %>">                             <h3>                                 <%= item.nombreApellido %>                             </h3>                             <p>                                 <%= item.partido %>                             </p>                              <form id="formulario" action="/api/votapi/<%= item._id %>" method="POST">                                 <ul class="follow-us clearfix">                                     <button type="submit" class="btn btn-primary btn-block text-uppercase mb-2 rounded-pill shadow-sm" type="text">VOTAR</button>                                 </ul>                          </div>                     </li>                     <% }); %>                          </form> 

Desde la API lo quiero trabajar de esta manera ya que luego de recibir los datos del POST, por un lado incremento en 1 el voto al candidato elegido y por el otro modifico el booleano (por defecto en false) para convertirlo en true. Y asi usarlo para chequear si X usuario ya votó.

<!-- API --> routerApi.post('/:id', function(req, res, next) {     if (req.params.id) {         console.log(req.params.user.id);         Candidato.update({ _id: req.params.id }, { $  inc: { votos: 1 } }, { safe: true },             function(err, response) {                 if (err) return res.status(500).send(error);                 if (response) {                     User.updateOne({ dni: req.session.user.dni }, { $  set: { voto: true } }, { safe: true },                         function(err, response) {                             if (err) return res.status(500).send(error);                             if (response) {                                 res.status(200).redirect('/resultados');                                 console.log('Voto exitoso!')                             }                          });                 } else {                     res.status(500).send(new Error("No se pudo votar"));                  }             });     } });  <!-- Fin API --> 

Gracias de antemano. Saludos

Envío de JSON con fetch y recibida en php sin FormData

Muy buenas noches compañeros, mi siguiente inquietud es como puedo recibir un JSON pasado por el body de fetch de JavaScript en PHP y validar en la respuesta de texto que llegaron cada uno de sus indices con sus respectivos valores.

Petición dirigida hacia el controlador

function ensayar() { let objeto = {     "nombre": "Jean Carlo",     "apellido": "Castaño Millan",     "Telefono": 31222020 }; fetch('http://localhost:/AgroVirtual/Enrutador/ensayando', {     method: 'POST',     body: JSON.stringify(objeto) })     .then(function (response) {         return response.text();     })     .then(function (data) {         console.log(data);     })     .catch(function (error) {         console.error(error);     }) } 

Controlador desde el backend procesando la petición

 public function ensayando(){     $  datos = json_decode($  _POST, true);     print_r($  datos); } 

Resultado esperado

stdClass Object ( [nombre] => Jean Carlo [apellido] => [telefono] =>                Castaño Millan [Telefono] => 31222020  )  

Realmente esta es la respuesta que deseo, que mi JSON me retorne en el response text que se transformo en un objeto nativo de PHP para poder seguir trabajando con el posteriormente desde el backend.

Nota: Esto antes lo lograba de igual forma con XmlHttprequest, pero me cambie a fetch y ese es el unico obstaculo que he tenido por el momento.

Evitar Duplicidad en envio de datos AJAX

La verdad, mis conocimientos en JS y Ajax no son muy grandes y por ello recurro a ustedes. Mi problema radica en un script o funcion que envia una variable para la impresion POS. Trabajo actualmente con Datatables, Ajax, PHP y Mysql.

En mi datatables, tengo lo siguiente:

{ "sClass": "alignRight", 'data' : null, 'render': function (data, type, row, meta) {   var idv = row['id'];   var comanda = row['comanda'];   var comanda_bar = row['comanda_bar'];   var estado = row['estado'];    if (comanda === 'S' && estado === 'S' && comanda_bar === 'N'){      return '<span class="btn btn-xs btn-rounded btn-warning acciones" onClick="individual();" id="' + idv + '">IMPRIME</span>';   }else if (comanda === 'N' && estado === 'S' && comanda_bar === 'S'){      return '<span class="btn btn-xs btn-rounded btn-warning acciones" onClick="individual();" id="' + idv + '">IMPRIME</span>';   }   }   } 

Lo que hago basicamente ahi es ver hacia donde imprime dependiendo de las condicionales (si imprime ticket al bar o a la cocina).

La funcion que envia los datos es la siguiente:

function individual(){  $  (".acciones").attr('onclick','').unbind('click');  $  (document).on('click', '.acciones', function(e) {   var idv = this.id;   $  .ajax({   data: {"dato" : idv},   url: 'individual.php',   type: 'POST',   success: function (response) {   } });   e.preventDefault();   e.stopPropagation();   return false;  }); } 

Hasta ahi, todo bien. Imprime correctamente los tickets hacia el bar o cocina. El problema es que cuando imprimo mas de una vez, salen 2 impresiones, es como si quedara un contador que va incrementandose cada vez que se presiona el boton de impresion.

Alguien tiene alguna idea de que puede ser o como puede arreglarse o bien me orienten a como hacerlo? Agradezco como siempre, la ayuda que me pudisien entregar. Saludos.

¿Para qué sirve; cómo funciona y que uso puedo darle al envío de “this” como argumento?

Entre tanto hacía practicas de la teoría aprendida; me tuve por hecho de modo que continué con mis estudios hasta dar con un tópico en el cual se postulaba el envío de la palabra reservada “this” con la finalidad de transferir un objeto actual a otro método. Lo cual me generó más preguntas que respuestas; por lo tanto recurro a su ayuda.

  • Primero antes que nada quisiera saber como es posible el funcionamiento de este procedimiento. Infiriendo, si estoy correcto; sería como una especie de puntero.

  • También, me ayudaría mucho si me dan una aplicación adecuada de esta técnica y situaciones en las que sea necesaria su uso.

Sitios web en los que se evidencian su empleo

http://xahlee.info/java-a-day/this.html (Última parte)

https://www.javatpoint.com/this-keyword (Cuarto enunciado)

Saludos,

Steven

como envio para outro pagina a partir de botao desconfigurado?

nao estou conseguindo! tenho este botao que salvei do meu site antigo.. alguem consegue me dar uma luz?

minha estrutura html e a seguinte:

    <div data-js="shipping-options-region" class="shipping-options-container">             <section data-js="shipping-options-group-0" class="delivery-options"><div><div class="shipping-options-group"> <h3 class="block-title">!!!!</h3> <div class="shipping-options-list-container">     <ul class="cart-package__options ui-list__content ui-list " data-js="shipping-options-list"><li class="ui-list__item ui-list__item--selected"><form data-id="shipping-option-104830550300001"   data-state="selected" data-js="shipping-option-form" class="shipping-option-form" method="post">  <button type="submit"  name="selectedShippingOption" >      <div class="cart-package__option-button u-ripple-effect--active u-ripple-effect" >         <div class="cart-package__shipping-box">             <div class="cart-package__shipping-header">                 <div data-id="shipping-option-name" class="cart-package__shipping__title">                     clique aqui!                 </div>                     <p class="cart-package__shipping__info cart-package__shipping__info-inline">                       imperdivel    </p>             </div>             <span class="cart-package__shipping-price">                 <span class="cart-package__shipping-price-container">                         <span data-id="shipping-option-price-free" class="shipping-option-price price-free   u-link     "> 

no se ejecuta un envio de datos de un formulario

hola estoy tratando de guardar los datos de un formulario HTML básico en mi base de datos, en el primer código podrán ver cómo accedo al valor de los inputs del formulario y en el segundo como los envió a la base de datos el problema radica en que no me da errores ni nada de hecho no me guarda los datos en la base de datos,el segundo código utilizando esa condicional descubrí que no se esta ejecutando alguien sabe cual podrías ser el error ya busque en varias paginas pero ninguna me da una respuestas.

estoy trabajando bajo MVC, si necesitan mas codigo me lo indican y lo agrego Gracias

/*============================================= 			CREACION DE USUARIO 	=============================================*/ 	public static  function ctrCrearUsuario(){ 		if (isset($  _POST["nuevoUsuario"])) { 				 if(preg_match('/^[a-zA-Z0-9ñÑáéíóúÁÉÍÓÚ ]+$  /', $  _POST["nuevoNombre"]) &&    preg_match('/^[a-zA-Z0-9]+$  /', $  _POST["nuevoUsuario"]) &&    preg_match('/^[a-zA-Z0-9]+$  /', $  _POST["nuevaContraseña"])){ 			                    $  tabla = "usuarios";                    $  datos = array("nombre"=>   $  _POST["nuevoNombre"],                    	          "usuario" => $  _POST["nuevoUsuario"],                    	          "password"=> $  _POST["nuevaContraseña"], 				  "perfil"  => $  _POST["nuevoPerfil"]);                              $  respuesta =ModeloUsuarios::mdlIngresarUsuarios($  tabla, $  datos);                                        if ($  respuesta==="ok"){                         echo "guardado"                    }

 public static function mdlIngresarUsuarios($  tabla, $  datos){  	$  stmt = Conexion::conectar()->prepare("INSERT INTO $  tabla(nombre, usuario, password, perfil, foto) VALUES (:nombre, :usuario, :password, :perfil, :foto)");  	$  stmt->bindParam(":nombre", $  datos["nombre"], PDO::PARAM_STR); 	$  stmt->bindParam(":usuario", $  datos["usuario"], PDO::PARAM_STR); 	$  stmt->bindParam(":password", $  datos["password"], PDO::PARAM_STR); 	$  stmt->bindParam(":perfil", $  datos["perfil"], PDO::PARAM_STR); 	$  stmt->bindParam(":foto", $  datos["foto"], PDO::PARAM_STR);     if ($  stmt->execute()) {        return "ok";    }    else{        return "error";    }   	$  stmt->close(); 	 	$  stmt = null;  }

ENVIO DE MAILS GMAIL – HEROKU

Expected response code 250 but got code “530”, with message “530-5.5.1 Authentication Required. Learn more at 530 5.5.1

Tengo problemas con envio de mail desde el servidor Heroku. desde localhost, los envia perfectamente. Aqui esta mi .ENV

MAIL_DRIVER=smtp   MAIL_HOST=smtp.gmail.com   MAIL_PORT=587   MAIL_USERNAME=mi@mail.com   MAIL_PASSWORD="xxxxxxxx"   MAIL_ENCRYPTION=tls 

ya intente con MAIL_DRIVER=sendmail en MAIL_PORT= y no funcionó.

Puede que tenga algo pendiente de configurar en HEROKU? MUCHAS GRACIAS!

Tempo de envio de dados

Estou a desenvolver uma pequena estação de meteorologia para aplicar num terreno agricola, que consiste em ter um sensor de temperatura, um sensor de chuva e um sensor de humidade este a incoporar mais tarde pois ainda não o tenho. No entanto queria pôr a enviar os dados de temperatura com um delay de 600000ms e que o sensor de chuva tivesse um delay de 1000. Não estou ver a forma como faze-lo. O que fiz de código até agora é o seguinte:

#include <ESP8266WiFi.h> #include <PubSubClient.h> #include <Wire.h> #include <farmerkeith_BMP280.h>  int rainSensor = A0; int rainLED = 2; int dryLED = 3; int sensorVal; int sensortrigger = 350; /*    Conexao ao AP    Credenciais de acesso    SSID - Nome do AP de acesso    Password - Passsword de acesso */ #define wifi_ssid "xxxxxxxx" #define wifi_password "xxxxxxxxx" /*    Endereço IP do MQTT Broker (Mosquitto) */ #define mqtt_server "192.168.1.10" /*    Definição dos tópicos dos dados dos sensores */ #define bmp_temperature_topic "temperaturebmp" #define bmp_pressure_topic "pressurebmp" #define rain_sensor_topic "rainstate"  /*    Inicialização das classes */ WiFiClient espClient; PubSubClient client(espClient); bmp280 bmp0;  void setup() {   Serial.begin(115200);   pinMode(rainSensor, INPUT);   pinMode(rainLED, OUTPUT);   pinMode(dryLED, OUTPUT);   digitalWrite(rainLED, LOW);   digitalWrite(dryLED, LOW);   setup_wifi();   client.setServer(mqtt_server, 1883);   bmp0.begin(); } void setup_wifi() {   delay(10);   /*      Inicio de conexão á rede Wi-Fi   */   Serial.println();   Serial.print("Connecting to ");   Serial.println(wifi_ssid);   WiFi.begin(wifi_ssid, wifi_password);   while (WiFi.status() != WL_CONNECTED) {     delay(500);     Serial.print(".");   }   Serial.println("");   Serial.println("WiFi connected");   Serial.println("IP address: ");   Serial.println(WiFi.localIP()); }  void reconnect() {   /*    *Loop de reconexão até que se conecte na rede Wi-Fi e no MQTT Broker    */   while (!client.connected()) {     Serial.print("Attempting MQTT connection...");     // Attempt to connect     // If you do not want to use a username and password, change next line to     // if (client.connect("ESP8266Client")) {     if (client.connect("changeMe")) {       Serial.println("connected");     } else {       Serial.print("failed, rc=");       Serial.print(client.state());       Serial.println(" try again in 5 seconds");       // Wait 5 seconds before retrying       delay(5000);     }   } } void loop() {   if (!client.connected()) {     reconnect();   }   client.loop();   // Segundos de espera entre medidas        int sensorVal = analogRead(rainSensor);       if (sensorVal < sensortrigger) {         Serial.println("Rain");         digitalWrite(dryLED, LOW);         digitalWrite(rainLED, HIGH);         client.publish(rain_sensor_topic, String("Raining").c_str(), true);       }       else {         Serial.println("Not Rain");         digitalWrite(rainLED, LOW);         digitalWrite(dryLED, HIGH);         client.publish(rain_sensor_topic, String("Not Raining").c_str(), true);       }       // Leitura da temperatura e pressão       double temperature = bmp0.readTemperature (); // measure temperature       Serial.print("Temperature = ");       Serial.print(temperature, 3); // print with 3 decimal places       Serial.println( " degrees Celsius");       client.publish(bmp_temperature_topic, String(temperature).c_str(), true);        double pressure = bmp0.readPressure (); // measure pressure       Serial.print("Atmospheric pressure = ");       Serial.print(pressure, 4); // print with 4 decimal places       Serial.println( " mbar");       client.publish(bmp_pressure_topic, String(pressure).c_str(), true);       delay(2000); }