我有一个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);
});
我需要根据用户从选择框中选择的内容来更新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;
?>
它更新数据库,但是它给出了我更改的td值的null值。我认为在更新查询中它没有获得':Remarks'的值。
有什么帮助吗?
答案 0 :(得分:0)
检查$_REQUEST["Remarks"];
应该为$_REQUEST["DAY1"];
因为您的data
在Ajax中的发送方式如下:
data: {
'employeeName' :emp_name,
'DAY1' : r
},
因此,在 PHP 中,您必须将其更改为此:
$employeeName = $_REQUEST["employeeName"];
$Remarks = $_REQUEST["DAY1"];