Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

229
Vistas
Botón para cambiar el valor en SQL sin ninguna redirección

Intentar usar Javascript para pasar el valor de un botón para ejecutar un script PHP (el script simplemente cambió una columna booleana a 1 / True.

Sin embargo, no puedo hacer que el código funcione, no estoy seguro de si es mi formato, pero no estoy muy familiarizado con Javascript

simplemente estoy tratando de cambiar el valor en la base de datos SQL en una columna sin ninguna redirección.

índice.php

 <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script language="javascript"> $("body").on("click","button", function(ev){ ev.preventDefault(); // prevent submitting a form ... let data={id: $(this).data("id")} $.post("viewed.php",data) .done(function (result) { console.log("Message:",result); }); }); </script>

Mi botón index.php

 <div><button name="Delete" data-id='<?echo $data['orderReference']?>'">Delete</button></div>

y Visto.php

 $orderID = $_POST['id'] ; if ($_POST) { try { $sqlOrderviewed = "UPDATE `Order_Header` SET `orderViewed` = '1' WHERE `Order_Header`.`orderReference` IN ($orderID) "; $resultOrderupdate = $products->conn->query($sqlOrderviewed); // Execute Statement echo $count = $resultOrderupdate->rowCount(); } catch (PDOException $e) { // If error in SQL echo "One or more errors occurred saving to database This transaction will be rolled back:" . $e->getMessage(); // Display Message on End Point // $products->conn->rollback(); // Rollback SQL } }

Soy consciente de la inyección de SQL en este ejemplo, esto no es producción, solo intento que un ejemplo funcione

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Para hacer esto, sugeriría hacer un comportamiento de tipo REST API en su PHP que acepte JSON (como ejemplo) que puede definir con encabezados. Para que su JavaScript pueda permanecer casi igual, solo asegúrese de estar apuntando a la URL correcta. Pero creo que tu PHP debería parecerse más a esto:

 <?php // Headers header('Access-Control-Allow-Origin: *'); header('Content-Type: application/json'); header('Access-Control-Allow-Methods: POST'); //maybe make this an update to be Semantic with the SQL operation you are doing // Get raw data from the post you made in JavaScript $data = json_decode(file_get_contents("php://input")); $id = $data.id; // Use the data in your SQL $sqlOrderviewed = "UPDATE `Order_Header` SET `orderViewed` = '1' WHERE `Order_Header`.`orderReference` IN ($id) "; ?>

Si necesita más información sobre la creación de API con PHP, le sugiero estos recursos:

  • https://www.youtube.com/watch?v=OEWXbpUMODk
  • https://shareurcodes.com/blog/creating%20a%20simple%20rest%20api%20in%20php
  • https://github.com/bradtraversy/php_rest_myblog

No estoy seguro de que $(this).data("id") obtenga los datos que desea. Supongo que desea obtener el valor de identificación de datos en su botón. Si es así, cambiaría tu JavaScript a algo más como esto:

 <script language="javascript"> $("body").on("click","button", function(ev){ ev.preventDefault(); // prevent submitting a form ... let id = ev.target.getAttribute("data-id"); let data={id: id}; $.post("http://localhost:{port}/viewed.php",data) .done(function (result) { console.log("Message:",result); }); }); </script>

¡Espero que esto ayude!

PD: así es como podría haber escrito el JS para esto, simplemente lo encuentro un poco más legible (no probado, solo escrito en el editor MD al responder la pregunta):

 let buttons = document.querySelectorAll("button"); buttons.forEach((button) => { button.addEventListener("click", (e) => { e.preventDefault(); let id = e.target.getAttribute("data-id"); let data = { id: id }; $.ajax({ type: 'POST', url: '/viewed.php', data: data, success: function(result){ console.log( "result: " + result ); } }) }) });
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda