JavaScript - Actualizar datos sql desde tabla

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 56 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Actualizar datos sql desde tabla

Publicado por Alejandro (4 intervenciones) el 18/05/2020 13:46:20
Tengo la siguiente tabla, quiero editar los registros Orden de mi SQL (ligándolo a el campo NOrden) desde la tabla de forma rápida enviandolos a update.php. Aparentemente me modifica el dato de la tabla pero al refrescar se ve que no ha registrado los cambios en la base de datos, si no que los borra.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
$sql = "SELECT DISTINCT  Orden, FFab, N_Orden=Ordenes.OF_N_Orden, Color, Client, Metros, Tiempo, FEnt,Operario
        FROM ((
                Ordenes INNER JOIN VCLIENTE ON VCLIENTE.Clie_codigo = Ordenes.OF_Cod_Cli
            ) INNER JOIN ARTITTEC ON ARTITTEC.Tec_codigo = Ordenes.OF_Cod_Art
        )
        INNER JOIN VTiempos ON  VTiempos.Of_n_orden= Ordenes.OF_N_Orden
            AND Vtiempos.OF_LIN =Ordenes.OF_Lin
        ORDER BY Orden asc, Fecha asc";
 
$stmt = sqlsrv_query($conn, $sql);
if ($stmt === false) {
    die(print_r(sqlsrv_errors(), true));
}
 
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
?>
<td class="orden" id="orden-<?= intval($row['Orden']) ?>"><?php echo $row['Orden'] ?></td>
        <td role="gridcell"><?php echo $row['FFab']; ?></td>
        <td class="norden" align="center" id="norden-<?= intval($row['N_Orden']) ?>"><?php echo $row['N_Orden']; ?></td>
        <td role="gridcell"><?php echo $row['Color']; ?></td>
        <td role="gridcell"><?php echo $row['Client']; ?></td>
        <td role="gridcell"><?php echo $row['Metros']; ?></td>
        <td role="gridcell"><?php echo $row['Tiempo']; ?></td>
        <td role="gridcell"><?php echo $row['FEnt']; ?></td>
        <td role="gridcell"><?php echo $row['Operario']; ?></td>
        <td><input type="button" class="edit" name="edit" value="Edit"></td>
 
        </tr></b></font>
        <?php { ?>
    </tbody>
</table>
 
<div class="k-pager-wrap k-grid-pager k-widget k-floatwrap" data-role="pager">
    <span class="k-pager-info k-label"></span>
</div>

JavaScript para la función Editar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
$(document).on("click", "#skuTable .edit", function () {
    var $this = $(this);
    var tds   = $this.closest('tr').find('td').filter(function () {
        return $(this).find('.edit').length === 0;
    });
    if ($this.val() === 'Edit') {
        $this.val('Save');
        if ($this.id !== '.orden') {
            tds.prop('contenteditable', true);
        }
    }
    else {
        var isValid = true;
        var errors  = '';
        $('#myDialogBox').empty();
        var elements = tds;
        if (tds.find('input').length > 0) {
            elements = tds.find('input');
        }
        var dict = {};
        elements.each(function (index, element) {
            var type  = $(this).attr('class');
            var value = (element.tagName == 'INPUT') ? $(this).val() : $(this).text();
            console.log(type);
            // ----- Switch statement that provides validation for each table cell -----
            switch (type) {
                case "norden":
                    dict["N_Orden"] = value;
                    break;
                case "orden":
                    dict["Orden"] = value;
                    break;
            }
        })
        if (isValid) {
            console.log(dict);
            $this.val('Edit');
            tds.prop('contenteditable', false);
            var request = $.ajax({
                type: "POST", url: "update.php", data: dict
            });
 
            request.done(function (response, textStatus, jqXHR) {
                if (JSON.parse(response) == true) {
                    console.log("row updated");
                }
                else {
                    console.log("row failed to updated");
                    console.log(response);
                    console.log(textStatus);
                    console.log(jqXHR);
                }
            });
 
            // Callback handler that will be called on failure
            request.fail(function (jqXHR, textStatus, errorThrown) {
                // Log the error to the console
                console.log(textStatus);
                console.log(jqXHR);
                console.error("The following error occurred: " + textStatus, errorThrown);
            });
 
            // Callback handler that will be called regardless
            // if the request failed or succeeded
            request.always(function () {
 
            });
        }
        else {
            alert(errors);
        }
    }
});

Update.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$Orden  = $_POST['Orden'];
$NOrden = $_POST['NOrden'];
$host   = "xxxxxxxxxx";
$dbName = "xxxxx";
$dbUser = "xxxxxxxxxxxxxx";
$dbPass = "xxxxxxxxxxxx";
$pdo    = new PDO("sqlsrv:server=" . $host . ";Database=" . $dbName, $dbUser, $dbPass);
$sql    = "UPDATE Ordenes SET OF_OrdenOFs = '$Orden' WHERE OF_N_Orden = '$NOrden'";
$stmt   = $pdo->prepare($sql);
//$stmt->bindValue('[:SKU Group]', $SKU);
//$stmt->bindValue(':Group_ID', $Group_ID)
$result = $stmt->execute();
echo json_encode($result);
if (!$result) {
    echo json_encode(sqlsrv_errors());
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder