Javascript 在更改选择框时更新mysql表中的值

Javascript 在更改选择框时更新mysql表中的值,javascript,php,mysql,database,Javascript,Php,Mysql,Database,我有一个html表,其中包含mysql db表中的值。客户端要求对我的html表中的数据进行前端编辑。因此,我在单击时将td转换为选择框,用户将在其中选择X和O备注 这是我的剧本: $(document).on('click', 'td', function() { ////---make td transform to dropdown list box when click---/// if($(this).find('select').length == 0) {

我有一个html表,其中包含mysql db表中的值。客户端要求对我的html表中的数据进行前端编辑。因此,我在单击时将td转换为选择框,用户将在其中选择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);        
    });
这是我的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;
    ?>

它更新数据库,但它在我所做更改的td值中给出null值。我认为它在我的更新查询中没有得到“:comments”的值

有什么帮助吗?

检查
$\u请求[“备注”]应该是
$\u请求[“DAY1”]

因为Ajax中的
数据
是这样发送的:

data: {
       'employeeName' :emp_name,
       'DAY1' : r
},
因此,在PHP中,您必须将其更改为:

$employeeName = $_REQUEST["employeeName"];
$Remarks = $_REQUEST["DAY1"];
检查请求[“备注”]应该是
$\u请求[“DAY1”]

因为Ajax中的
数据
是这样发送的:

data: {
       'employeeName' :emp_name,
       'DAY1' : r
},
因此,在PHP中,您必须将其更改为:

$employeeName = $_REQUEST["employeeName"];
$Remarks = $_REQUEST["DAY1"];

$\u请求[“备注”]应该是
$\u请求[“DAY1”](检查发送的ajax参数!)它不会更新!我认为$_请求[“备注”];是正确的,无需请求第1天列。我以前试过。我确信如果你的ajax说
数据:{'employeeName':emp_name,'DAY1':r}
,你的php应该
$\u请求
employeeName
DAY1
。所以,还有另一个错误,但您应该首先解决这个问题。我已经尝试将$\请求放在'DAY1'和bindValue中。它给了我这个错误字符串(100)“SQLSTATE[HY093]:无效参数编号:绑定变量的数量与令牌的数量不匹配”编辑问题并进行更改。可能是
var r=document.getElementById('备注').value为您提供一个数组。尝试在ajax之前控制台日志empoyename和r应该是
$\u请求[“DAY1”](检查发送的ajax参数!)它不会更新!我认为$_请求[“备注”];是正确的,无需请求第1天列。我以前试过。我确信如果你的ajax说
数据:{'employeeName':emp_name,'DAY1':r}
,你的php应该
$\u请求
employeeName
DAY1
。所以,还有另一个错误,但您应该首先解决这个问题。我已经尝试将$\请求放在'DAY1'和bindValue中。它给了我这个错误字符串(100)“SQLSTATE[HY093]:无效参数编号:绑定变量的数量与令牌的数量不匹配”编辑问题并进行更改。可能是
var r=document.getElementById('备注').value为您提供一个数组。尝试在ajax之前控制台日志empoyename和r。