javascript – Se puede validar el envio de un formulario en funcion del pago correcto con mercadopago?

Estoy trabajando en una web, que la idea es que permita publicar anuncios clasificados en un canal de television.

a la hora de resovler el pago, decidimos sea con mercadopago que es el mas sencillo y dado que no soy un experto en javascript ni mucho menos, decidi optar por la opcion de “boton de pago”; el monto es siempre fijo, el pago es por un anuncio solo, y el usuario tiene que completar un formulario que incluye una foto, un titulo y descripcion (lo cual ira al servidor).

como puedo evitar que se envie el formulario hasta que el usuario haya realizado el pago (correctamente)?

uso tecnologias HTML, CSS, JAVASCRIPT y PHP (con la que un amigo me ayuda).

mysql – Estou tentando retornar a contagem de linhas de uma consulta no banco e retornar em um formulario java. Alguem pode me ajudar?

Alguem pode ajudar a retornar o resultado da querry no gui form do java, o metodo recebe as datas como String pois ao passa-las estou manipulando, esta parte esta ok. Só precisava saber como retornar o resultado da consulta?

DAO:

public Relatorio consultarIdadeMenor90(String dataInicio, String dataFim) throws SQLException {
   Relatorio rel = new Relatorio();
   String sql = "SELECT COUNT(idade) FROM tb_vacinacao WHERE idade >= 70 AND idade < 90 AND data_vacinacao BETWEEN ? AND ?";
    try (Connection conn = ConexaoBD.obtemConexao();
            PreparedStatement ps = conn.prepareStatement(sql)) {
        ResultSet rs = ps.executeQuery();
        ps.setString(1, dataInicio);
        ps.setString(2, dataFim);
        ps.execute();
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
    return rel;

}

Classe Relatorio:

public class Relatorio {
private int qtd;

Relatorio (int qtd) {
    this.qtd = qtd;
}
public int getQtd() {
    return qtd;
}

public void setQtd(int qtd) {
    this.qtd = qtd;
}

}

html – Backend formulario – Stack Overflow en español

¡Gracias por contribuir en StackOverflow en español con una respuesta!

  • Por favor, asegúrate de responder a la pregunta. ¡Proporciona información y comparte tu investigación!

Pero evita

  • Pedir ayuda o aclaraciones, o responder a otras respuestas.
  • Hacer declaraciones basadas en opiniones; asegúrate de respaldarlas con referencias o con tu propia experiencia personal.

Para obtener más información, consulta nuestros consejos sobre cómo escribir grandes respuestas.

javascript – Mandar archivos grandes a través de un formulario

Tengo un formulario el cual manda cuantos archivos pongas a una carpeta local. Está funcionando solamente en local, pero es cuestión de cambiar de rutas, nada mas.

index.php
Página principal, solamente tiene la variable de sesión para controlar errores mediante el php

<?php
    if (isset($_SESSION('message')) && $_SESSION('message'))
    {
      printf('<b>%s</b>', $_SESSION('message'));
      unset($_SESSION('message'));
    }
?>

  <form id="upload_form" enctype="multipart/form-data" method="post" action="upload.php">
    <input type="file" name="file1" id="file1" onchange="uploadFile()" multiple size="50"><br>
    <h3 id="status"></h3>
    <p id="loaded_n_total"></p>
    <input type="submit" id="btn-progressbar" value="Upload" style="visibility:hidden">
  </form>

<template id="temp_prog">
  <div id="demo">
    <h3 class="txt_file_num">  </h3>
    <p class="txt_file_name"></p>
    <p class="txt_file_size"></p>
    <progress class="progressBar" value="0" max="100""></progress>
  </div>
</template>

JS
Ya está hecho, pero a la hora de mandar las cosas por el PHP, si es demasiado grande, casca error

let ary = ();

function _(el) {
  return document.getElementById(el);
}

function uploadFile() {
  let file = _("file1");

  if('files' in file){
    if(file.files.length == 0){
      console.log("Select one or more files");

    } else {
      for(let i=0;i < file.files.length;i++){
        //request y declaracion iterada de files
        let ajax = new XMLHttpRequest();
        let x = file.files(i);

        //despliegue del temp
        let txt = createElement();
        document.body.append(txt);

        //push en array
        ary.push(x);

        //logs
        if ('name' in x) {
          txt.getElementsByClassName('txt_file_name')(0).innerHTML = 'Name: '+x.name;
        }
        if ('size' in x) {
          txt.getElementsByClassName('txt_file_size')(0).innerHTML = 'Size: '+x.size;
        }

        let bar = txt.getElementsByClassName('progressBar')(0);

        let formdata = new FormData();
        formdata.append("file1", x);
        ajax.upload.addEventListener("progress",(event)=>{progressHandler(event, bar)}, false);
        ajax.addEventListener("load", completeHandler, false);
        ajax.addEventListener("error", errorHandler, false);
        ajax.addEventListener("abort", abortHandler, false);
        ajax.open("POST", "upload.php"); 
        ajax.send(formdata);

      }
    }
  }
}

function progressHandler(event, bar) {

  _("loaded_n_total").innerHTML = "Uploaded " + event.loaded + " bytes of " + event.total;
  let percent = (event.loaded / event.total) * 100;

  bar.value = Math.round(percent);

  _("status").innerHTML = Math.round(percent) + "% uploaded... please wait";

}

function completeHandler(event) {
  ary.shift();
  console.log('completado');

  if(ary.length == 0){
    //_('btn-progressbar').click();
  }
}

function errorHandler(event) {
  _("status").innerHTML = "Upload Failed";
}

function abortHandler(event) {
  _("status").innerHTML = "Upload Aborted";
}

function createElement(){
  let dv = document.createElement('div');
      dv.setAttribute('class', 'demo');
  let p1 = document.createElement('p');
      p1.setAttribute('class', 'txt_file_name');
  let p2 = document.createElement('p');
      p2.setAttribute('class', 'txt_file_size');
  let pr = document.createElement('progress');
      pr.setAttribute('class', 'progressBar');
      pr.setAttribute('value', '0');
      pr.setAttribute('max', '100');

      dv.append(p1);
      dv.append(p2);
      dv.append(pr);

  return dv;
}

upload.php
*El origen de la discordia. *

<?php
session_start();

$message = ''; 

  if (isset($_FILES('file1')) /*&& $_FILES('file1')('error') === UPLOAD_ERR_OK*/)
  {

    // get details of the uploaded file
    $fileTmpPath = $_FILES('file1')('tmp_name');
    $fileName = $_FILES('file1')('name');
    $fileSize = $_FILES('file1')('size');
    $fileType = $_FILES('file1')('type');
    $fileNameCmps = explode(".", $fileName);
    $fileExtension = strtolower(end($fileNameCmps));

    // sanitize file-name
    $newFileName = md5(time() . $fileName) . '.' . $fileExtension;

    // check if file has one of the following extensions
    $allowedfileExtensions = array('jpg', 'gif', 'png', 'zip', 'txt', 'xls', 'doc', 'pdf', '7z', 'mp4', 'img');

    echo $fileTmpPath; die;

    if (in_array($fileExtension, $allowedfileExtensions))
    {
      // directory in which the uploaded file will be moved
      $uploadFileDir = 'archivos_aaron_pruebas/';
      $dest_path = $uploadFileDir . $newFileName;

      if(move_uploaded_file($fileTmpPath, $dest_path)) 
      {
        $message ='File is successfully uploaded.';
      }
      else 
      {
        $message = 'There was some error moving the file to upload directory. Please make sure the upload directory is writable by web server.';
      }
    }
    else
    {
      $message = 'Upload failed. Allowed file types: ' . implode(',', $allowedfileExtensions);
    }
  }
  else
  {
    $message = 'There is some error in the file upload. Please check the following error.<br>';
    $message .= 'Error:' . $_FILES('file1')('error');
  }
$_SESSION('message') = $message;
header("Location: image-loader.php");

No controlo casi nada de PHP, pero he leído que los .ini de PHP hace que no se puedan mandar archivos demasiado pesados. Que la mejor manera es a través de chunks del archivo, fragmentarlo, y luego con el PHP reconstruirlo.

¿Habría alguna otra forma de poder solventar esto? Porque me da bastante miedo desfragmentar algo y después reconstruirlo…

Validar y activar boton si un formulario es valido – Angular

Tengo un formulario el cual cuando es valido queda con esta clase ng-dirty ng-touched ng-valid y cuando el form es inválido por campos tiene esta clase ng-untouched ng-pristine ng-invalid, el motivo a esto es que deseo habilitar el botón de envió cuando el formulario sea valido.

Me gustaría validar el formulario ya que son muchos campos y hacer un if(todos los campos y condicion) para activar el botón seria muy extenso la validación

mi formulario:

<form #formAdd validate>
 <button class="card card-small btn btn-primary bg-primary" *ngIf="formAdd.hasError" (click)="addUser(userAdd)">
     <span class="p-2">Registrar</span>
  </button>
</form>

javascript – Formulário que gere um gráfico no final

Preciso fazer um formulário de sim ou não que no final gere um gráfico com base nas respostas do cliente, com que linguagens poderia fazer isso, como poderia pensar para começar a escrever o código?

c# – como compartir data table entre un formulario y un reporte

tengo un formulario donde lleno “manualmente” un datatable contenido en un dataset, y otro formulario donde tengo un control reportviewer que utiliza la misma tabla como data del reporte. yo confirmo en el formulario donde lleno la tabla que termina con registros, pero el reporte no muestra data.

cuando lleno la tabla en el mismo formulario donde tengo el control reportviewer si muestra los datos.

pero necesito llenarla en otro.

gracias de antemano por la orientación.

c# – Ocultar Boton al cerrrar Formulario

Hola chico@s he intenrtado de muchas maneras y no lo logro conseguir

Necesito de su ayuda, lo que necesito es que el boton inscripcion aparezca cuando la ventana inscripcion se habra y que el boton se oculte cuando se cierre la ventana inscripcion

introducir la descripción de la imagen aquí

asi como esta imagen, en este imagen se encuentran abiertas las ventanas edicion de productos, devolucion y salida de inventario
introducir la descripción de la imagen aquí

creo que prodria ser recorriendo los form abiertos con application.OpenForm pero no encuentro la manera de como programarlo

php – POST devuelve array vacío en el segundo formulario

Tengo una vista a la que llego desde un controlador para mostrar un modelo concreto de camiseta. Después hago un post en la misma página para que elija el color de la camiseta y poder mostrar una lista con las cantidades de cada talla de ese modelo y color concretos, y poder modificarlas. Pues bien el segundo formulario que se pinta dentro de un bucle while, devuelve siempre un array vacío. Si cambio por get, sí recibo los datos por la url, pero ya no me lleva al controlador. Les dejo el código de la vista y del controlador que la pide. En el controlador que recibe los datos solo hay un var_dump() para verificar qué datos llegan.
Controlador:

public function indexByModel()
    {
        if(isset($_GET) && isset($_GET('modelo'))){
            $modelo = (int)$_GET('modelo');
                                               
            $prenda = New Prenda();
            $prenda->setId_modelo($modelo);
            $prendas = $prenda->getByModel();
            
            $result = array();
            $count = 0;
            while ($row = $prendas->fetch_object()){
                $result($count) = $row;
                $count++;
            }
            require_once 'views/prendas/prenda.php';    
    }else{
        echo "No llega el dato por la URL";
    }
       
}

y la vista ‘views/prendas/prenda.php

<div class="row">
<div class="col-5">
    <h1 class="bg-succes text-start mb-1"><?=$result(0)->modelo?></h1>
    <div>
        <img class="border-secondary img-thumbnail my-2" width="90%" src="<?=_URL_BASE_?>/assets/img/CamisetasUnisexCategoria.png">
    </div>
    <div>
        <?=$result(0)->categoria?> / <?=$result(0)->familia?>
    </div>
</div>
<div class="col">
    <h3>Colores</h3>
    
    <div class="row justify-content-start mb-5">  
        <?php $colores = Utils::showColores(); ?>
        <form action="" method="POST">
        <?php while ($color = $colores->fetch_object()): ?>       
            <button name="color" value="<?=$color->id?>" style="background-color:#<?=$color->codigo?>" title>
                <svg width="30" height="50" class="mr-3">
                    <rect width="30" height="30" style="fill:#<?=$color->codigo?>;" alt="<?=$color->color?>" />
                </svg>
            </button>  
        <?php endwhile; ?>   
        </form>
    </div>
    <?php if (isset($_POST) && isset($_POST('color'))): ?>
        <?php $color = (int)$_POST('color'); ?>
        <?php $prendas = Utils::showByModelColor($modelo, $color); ?>
        
        <table class="table text-center">
            <thead>
                <th>Color</th>
                <th>Talla</th>
                <th>Cantidad</th>
                <th>Modificar</th>
            </thead>
            <form action="<?=_URL_BASE_?>?controller=PrendaController&action=update" method="POST">
       
            <?php while($prenda = $prendas->fetch_object()): ?>
                <tr>
                    <td><?=$prenda->color?></td>
                    <td>
                        <?=$prenda->talla?>
                    </td>
                    <td>
                        <?=$prenda->cantidad?>
                    </td>
                    <td>
                       <input type="hidden" name="id()" value="<?=$prenda->id?>" />
                       <input type="number" name="cantidad()"value="<?=$prenda->cantidad?>" min="0" /> 
                        
                    </td>
                </tr>
                <?php endwhile; ?>
                
        </table>
        <input class="btn btn-dark float-right mr-2" type="submit" value="Actualizar" />        
        </form>
        <?php endif; ?>

</div>

El primer POST recibe correctamente el código de color para poder mostras las cantidad de prendas que hay en stock de ese modelo y color.
El segundo formulario muestra las prendas por color y talla y sus cantidades y debería envíar el id de la prenda y la cantidad, pero llega siempre vacío.
He leído páginas de este foro y en inglés. Y he buscado lo que he podido y entendido sobre si podía envíar dos posts sucesivos en la misma página, y o bien no lo he encontrado o no he entendido lo que he encontrado. Llevo días atascado, agradezco su ayuda.

python – Formulario com erro / Django views

Tenho um app de um ecommerce que deveria incluir partes das informações de um formulário para um ultimo formulário que conclui os dados necessários para fechar uma compra e inserir mais uma informação na tabela de “ordens”. Contudo quando preencho os dados no penúltimo formulário e clico para ir para o ultimo formulário, a pagina somente recarrega. Tenho a seguinte view :

class OrderCreateView(CreateView):
    model = Order
    form_class = OrderCreateForm

    def form_valid(self, form):
        cart = Cart(self.request)
        if cart:
            order = form.save()
            for item in cart:
                Item.objects.create(
                    order=order,
                    product=item("product"),
                    price=item("price"),
                    quantity=item("quantity"),
                )
            cart.clear()
            self.request.session("order_id") = order.id
            return redirect(reverse("payments:process"))
        return redirect(reverse("pages:home"))

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context("cart") = Cart(self.request)       
        return context

“payments:process” invoca a seguinte view de pagamentos (ambas para form_valid) :


class PaymentCreateView(CreateView):
    model = Payment
    form_class = PaymentForm

    @cached_property
    def order(self):
        order_id = self.request.session.get("order_id")
        order = get_object_or_404(Order, id=order_id)
        return order

    def get_form_kwargs(self):
        form_kwargs = super().get_form_kwargs()
        form_kwargs("order") = self.order
        return form_kwargs

    def form_valid(self, form):
        form.save()
        redirect_url = "payments:failure"
        status = form.instance.mercado_pago_status

        if status == "approved":
            redirect_url = "payments:success"
        if status == "in_process":
            redirect_url = "payments:pending"

        if status and status != "rejected":
            del self.request.session("order_id")
        return redirect(redirect_url)

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context("order") = self.order
        context("publishable_key") = settings.MERCADO_PAGO_PUBLIC_KEY
        return context

Porém ao clicar no submit do ultimo formulario, a pagina simplesmente recarrega e não me envia para o ultimo formulário com sucesso. Se alguém puder me ajudar, envio o restante do código que só não enviei aqui para a pergunta não ficar muito extensa