Обновление значения в таблице MySQL при выборе поля onchange - PullRequest
1 голос
/ 14 июня 2019

У меня есть HTML-таблица, которая содержит значения в моей таблице MySQL базы данных.Клиент запрашивает интерфейсное редактирование данных в моей HTML-таблице.Так что я делаю td transform в поле выбора, когда нажимаю, где пользователь выбирает X и O. Замечания.

это мой сценарий:

 $(document).on('click', 'td', function() { ////---make td transform to dropdown list box when click---///
          if($(this).find('select').length == 0) {
              $(this).empty();  //clears out current text in the table
              $(this).append('<select onchange="myFunction()" id="Remarks" name="Remarks"><option value=""></option><option <?php if ($Remarks=='X') echo 'selected';?> value="X" style="font-size:20px;font-weight:bold;">X<option style="font-size:20px;color:green;font-weight:bold;" <?php if ($Remarks=='O') echo 'selected';?> value="O">O</select>');
          }
    });


    $(document).on('focusout', 'td select', function(){ 
        var myValue = $(this).val();
        var $parent = $(this).parent();
        $(this).remove();
        $parent.append(myValue);        
    });

Мне нужно сделать обновление длязначение td в зависимости от того, что пользователь выбрал из поля выбора.

Это то, что я пробовал: сделать замену для поля выбора

function myFunction(){
        var emp_name = document.getElementById('employeeName').value;
        var r = document.getElementById('Remarks').value;
                $.ajax({
                    type: 'post',
                    url: 'update_data.php',
                    data: {
                        'employeeName' :emp_name,
                        'DAY1' : r
                    },
                    success: function(data){
                        $("#content").html(data)
                        $(".loader").fadeOut("veryslow");               
                        $("#content").hide().fadeIn(500)  
                        //alert(r); 
                        //alert(emp_name);
                    },
                    error:function(data){
                        alert('Failed');
                    }
                })

    };

, и это мой update_data.php:

<?php
    $employeeName = $_REQUEST["employeeName"];
    $Remarks = $_REQUEST["Remarks"];
    //$id = $_REQUEST["id"];

    try {
        $pdo = new PDO('mysql:host=localhost:***;dbname=******;', '*****', '*****' );
        $pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
        $pdo->query( 'SET NAMES UTF8' );
        $stmt = $pdo->prepare(
            "UPDATE `mbwa`
            SET
                `DAY1` = :Remarks
            WHERE
                `employeeName` = :employeeName
            "
        );
        $stmt->bindValue(':employeeName',$employeeName,PDO::PARAM_STR);
        $stmt->bindValue(':Remarks',$Remarks,PDO::PARAM_STR);
        //$stmt->bindValue(':id',$id,PDO::PARAM_STR);
        $stmt->execute();
        header('location:./');
    } catch ( PDOException $e ) {
        var_dump( $e->getMessage() );   
    }

    $pdo = null;
    ?>

он обновляет базу данных, но дает значение null в значении td, который я делаю изменения.Я думаю, что в моем запросе на обновление значение ': Remarks' отсутствует.

любая помощь?

1 Ответ

0 голосов
/ 14 июня 2019

Проверьте $_REQUEST["Remarks"]; должно быть $_REQUEST["DAY1"];

Поскольку ваши data в Ajax отправляются так:

data: {
       'employeeName' :emp_name,
       'DAY1' : r
},

Итак, в PHP Вы должны изменить это на это:

$employeeName = $_REQUEST["employeeName"];
$Remarks = $_REQUEST["DAY1"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...