Javascript 在更改选择框时更新mysql表中的值
我有一个html表,其中包含mysql db表中的值。客户端要求对我的html表中的数据进行前端编辑。因此,我在单击时将td转换为选择框,用户将在其中选择X和O备注 这是我的剧本: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) {
$(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。