JavaScript - Editar 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

Editar Sql desde tabla

Publicado por Alejandro (4 intervenciones) el 15/05/2020 11:13:27
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. 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
<?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)){
?>
Escribimos los datos en las columnas


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<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);
        }
    }
});
Script 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