我试图在用户点击文本区域时使文本区域更新mysql表中的信息。请有人指导我正确的方向。这就是我到目前为止所拥有的。我没有得到任何错误,但当我更新它时,更改仍然存在。
HTML CODE
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
<textarea id="title" textarea name="title" rows="10" style="width: 456px;
margin-top:3px;
text-align:left;
margin-left:-2px;
height: 120px;
resize: none;
border: hidden;" data-id='$idbio'><?php echo $profile['bio'] ?> </textarea>
</form>
Javascript代码
<script type="text/javascript">
$('textarea').on('blur',function () {
var titleVal = $(this).val(), id = $(this).data('id');
$.ajax({
type: "POST",
url: "changebio.php",
data: {title:titleVal , id:id},
success: function(msg) {
$('#'+id).html(msg);
}
})
});
</script>
changebio.php
<?php
require_once("session.php");
require_once("functions.php");
require('_config/connection.php');
update_profilebio ();
header('Location: http://www.something.com/confirm.php');
?>
function.php
function update_profilebio() {
global $connection;
global $profile_id;
$query = "UPDATE ptb_profiles
SET bio='value'
WHERE ptb_profiles.user_id = \"$profile_id\"
AND ptb_profiles.user_id = ptb_users.id";
$update_profilebio_set = mysql_query($query, $connection);
confirm_query($update_profilebio_set);
return $update_profilebio_set;
}
答案 0 :(得分:0)
有很多可能的原因,为什么这不起作用。其中许多都可以在一个不错的浏览器中通过控制台快速检查。
我可以看到可能导致问题是AJAX调用后的成功(意味着AJAX调用需要成功)。您尝试将返回的HTML值重新指定为$('#'+id).html(msg);
,其中id
实际上不是这种情况下的选择器,id = $(this).data('id')
是数据ID。
我个人会将$idbio
附加到id属性的末尾,如下所示:
<textarea id="title-<?php echo $idbio;?>" textarea name="title" data-id="<?php echo $idbio;?>">
<?php echo $profile['bio'] ?>
</textarea>
<script type="text/javascript">
$('textarea').on('blur',function () {
var titleVal = $(this).val(),
id = $(this).data('id');
$.ajax({
type: "POST",
url: "changebio.php",
data: {title:titleVal , id:id},
success: function(msg) {
$('#title-' + id).val(msg);
}
})
});
</script>
答案 1 :(得分:-1)
为什么使用“on”方法?你可以这样做:“$('textarea')。blur(function(){...});”,我不知道你在这里使用的“数据”方法是什么:“$(这个).data('id')“,当我想在我的节点中获取一个id时,我只是为了这个:”$(this).attr('id');“,另外一件事,你从textarea获取字符串在第一次使用方法“val()”,然后,你尝试使用“html()”放置一个字符串,这有点不对。