审议本届会议:
echo '<img src = "'.$_SESSION['userpic'].'" class = "changepic">';
这是一个在数据库中显示用户图像的图像,带有会话变量!然而,在我的网站中,我正在使用上传图像表单更改用户图片,用户图片正在更新,但旧图片将保留,直到我刷新页面…我希望避免刷新页面以解决此问题。。。。
<form action = "upload.php" id = "bildUppladdning" method = "post" enctype = "multipart/form-data" target = "hiddenFrame">
<input type = "file" name = "file" id = "fileToUpload" accept="image/*" style = "display:none" onchange="form.submit()">
</form>
请注意,我的目标是一个iframe,而不是重定向到我的操作。。。
if(isset($_FILES['file']) ){
move_uploaded_file($_FILES['file']['tmp_name'],'files/'.$_FILES['file']['name']);
session_start();
$username = $_SESSION['user'];
$userpic = 'files/'.$_FILES['file']['name'];
$id = $_SESSION['id'];
include ("connect.php");
$sql = $con->prepare('UPDATE users SET username=?, userpic=? WHERE id = ?');
$sql->bind_param("ssi",$username,$userpic,$id);
$sql->execute();
$sql->close();
$con->close();
$_SESSION['userpic'] = $userpic;
}
else{
$_SESSION['checked'] = '<div class = "check"> NO</div>';}
这是我的上传表格,你可能不需要,但我会把它放在这里...
例如:
$("#fileToUpload").on('submit', function(response)
{
$.ajax({
url: "update.php"
});
return false;
});
使现代化php示例
<?php
$_SESSION['userpic'] = $row->userpic;
?>
所以为了简单起见,我想在提交表单时“更新”这个echo img标签,而不刷新或重定向..
你知道我怎么解决这个问题吗?
如果您想更改来自会话变量的当前图片,而无需使用页面刷新。您需要通过脚本或jquery方法更改属性。
下面是示例代码
$("#fileToUpload").submit(function(response)
{
$.ajax({url: "update.php",});
document.getElementsByClassName("changepic").src= response.fullImagePath;
return false;
});
实际上...这个问题并不像你想象的那么简单。你想上传一个文件,然后一旦上传完成,触发一个回调。这并不像人们想象的那样简单。
你应该尝试使用这个插件:
https://github.com/blueimp/jQuery-File-Upload
还有一个指向wiki的链接
https://github.com/blueimp/jQuery-File-Upload/wiki
您需要使用AJAX来实现您想要的。
您的HTML不太有意义,或者您忘记向我们提供更多信息。必须有一种选择文件的方法。无论出于什么原因,HTML代码都隐藏了文件输入按钮。所以我们假设它没有被隐藏:
<input type="file" id="fileToUpload" accept="image/*">
首先,使用jQuery将onchange
事件处理程序附加到您的文件输入按钮。在处理程序中,我们将选定的文件存储在FormData对象中,使用AJAX发送文件需要该对象。
$('#fileToUpload').change(function () {
var file = this.files[0];
console.log('file', file);
var formData = new FormData();
formData.append('file', file);
$.ajax({
type: 'post'
url: "upload.php",
cache: false,
contentType: false, // important
processData: false, // important
data: formData, // important
success: function (res) {
console.log('response (url)', res);
$('.changepic').attr('src', res);
}
});
});
其次,我们的AJAX请求预期的响应是URL,因此我们还需要更改您的PHP脚本。
// not within the scope of the question, but you need to do additional checks
if (isset($_FILES['file'])){
$userpic = 'files/'. $_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name'], $userpic);
session_start();
$username = $_SESSION['user'];
$id = $_SESSION['id'];
include "connect.php";
$sql = $con->prepare('UPDATE users SET username= ?, userpic=? WHERE id = ?');
$sql->bind_param("ssi", $username, $userpic, $id);
$sql->execute();
$sql->close();
$con->close();
$_SESSION['userpic'] = $userpic;
// important: output ONLY (and i mean ONLY) the path of your newly uploaded pic
// the output of your script is the AJAX response that will be returned back in your JavaScript
echo $userpic;
} else {
$_SESSION['checked'] = '<div class = "check"> NO</div>';
}
如果出现问题,查看控制台日志,了解问题出在哪里。
我有一个正在写的剧本,需要一些帮助。 首先,我的脚本应该如何工作。 脚本:用户填写谷歌表单并点击提交。提交后,我的脚本运行并从google工作表中读取我在工作表中操作的一系列数据单元。然后将数据单元格格式化为字符串,并在表单的确认消息中提示。 现在问题来了。 问题:当我提交我对表格的回复时,从表格到表格的一切都很好。当我手动运行代码时,代码工作正常。当我提交表单响应时,事件历史记录会显示触发器并说
表单提交成功后,页面不会重定向到感谢页面,在控制台上,我得到了错误响应,因为AMP4Email不支持重定向。请让我知道重定向功能何时工作。 我们正在使用 在Php中,我添加了重定向头
问题内容: [编辑]经过大量挖掘,我发现问题出在我如何将CKEditor集成到页面中。如公认的答案所述,在这种情况下,简单而明显的方法 确实 有效。 你好 在按下“提交”按钮之后,但在实际提交之前,我需要更改表单的值。 我尝试挂钩到表单的“ submit”事件,并在那里手动更改文本字段的值,但是看起来实际上并没有更改提交的值。 有任何想法吗? 问题答案: 我对您的说法感到奇怪,即处理程序对您不起作
问题内容: 我创建了一个松弛的对话框/表单来收集用户的一些信息。表单呈现得很好,我可以毫无问题地填写表单,但是单击“提交”后它不会关闭,而是出现错误: 我们在连接时遇到了一些麻烦。再试一次? 如文档中所述,我已经发回200状态OK 。 有什么事吗 我可以看到我的应用的控制台日志。 问题答案: 仅发送200 OK还不够。 它还必须为空,或者包含正确格式的输入验证错误列表,如JSON。如果您的回复包含
问题内容: 我想通过ajax更新表单提交而无需重新加载页面并根据它更新视图。我尝试了不同的方法,但作为Rails的新手失败了。 这是情况。 模态 在查看表单代码。 创建动作 最后我认为我想改变 花了很多时间用AJAX进行更新,但每次都失败。有什么需要帮助的吗?提前致谢。 问题答案: 您的代码不错,但是对于 ajax来说 , 您需要添加到表单中。 此外,在服务器端, 您需要在其中创建一个js.erb
问题内容: 我的问题是,当上一页由表单创建时,后退按钮会使浏览器说“页面已过期”。 例: 第1页:使用搜索条件提交的表单($ _POST请求,该表单指向第2页) page2:接收$ _POST请求并显示结果(带有链接的用户列表,指向page3) 第3页:显示用户个人资料 现在,当访客单击浏览器中的“后退”按钮时,它将显示类似“页面已过期”的信息。 而是应该在没有警告的情况下显示前一页(第2页,带有