我有一个表单,我想用PHP验证。来自Uploadcare小部件的海报上传是该表单的一部分。
有时用户必须在表单中反向修改内容 - 错误的电子邮件等。我希望在该表单中保留所选的上传文件。
单击后退按钮时可以使用,但我不能依赖它。我正在使用PHP POST变量来重新加载和重新填充表单。
我的问题:我可以使用带有Uploadcare输入按钮的POST变量来“记住”并重新加载用户之前上传的所选图片吗?
我目前的代码。
<input type="hidden"
role="uploadcare-uploader"
data-preview-step="true"
data images-only="true"
name="adposter"
style="display: inline-block;" />
是否可以执行以下操作:
<input type="hidden"
role="uploadcare-uploader"
data-preview-step="true"
data-images-only="true"
name="adposter"
style="display: inline-block;"
value="<?php print isset($_POST["adposter"]) ? htmlspecialchars($_POST["adposter"]) : ""; ?>"
/>
与其他领域一样?显然,Uploadcare输入小部件有自己的处理方式,因此查询。
答案 0 :(得分:3)
[role = uploadcare-uploader]输入的值为空或带有文件UUID的CDN链接。
如果您在外部设置输入的值并触发DOM更改事件,它将反映在窗口小部件中。例如,将其设置为文件UUID或CDN链接将显示该窗口小部件中上载的文件。您可以在实时窗口小部件上执行此操作,甚至可以在实际加载之前执行此操作。
所以你的第二个片段应该可以正常工作。
您可能还想知道设置窗口小部件值via JS的方式:
var widget = uploadcare.Widget('[role=uploadcare-uploader]');
widget.value("https://ucarecdn.com/e8ebfe20-8c11-4a94-9b40-52ecad7d8d1a/billmurray.jpg");
答案 1 :(得分:1)
对此进行排序。它可以用Value来完成。太好了!
答案 2 :(得分:0)
您可以使用$_POST
将变量从一个表单传递到另一个表单,就像您使用隐藏字段所描述的那样。但这并不是非常有效,当您将信息写回客户端时,他们可以改变这一点。
保存这些变量的更好方法是使用$_SESSION
:
会话支持允许您在请求之间存储数据 $ _SESSION超全局数组。当访问者访问您的站点时,PHP 将自动检查(如果session.auto_start设置为1)或打开 您的请求(显式通过session_start())是否具体 会话ID已随请求一起发送。如果是这样的话,那就是 重新创建先前保存的环境。 http://php.net/manual/en/intro.session.php
因此,在上传图片后,您将图片ID存储在$_SESSION
:
session_start();
$_SESSION['imageid'] = 123456;
然后,即使是表单,您也可以通过再次使用$_SESSION
变量来访问imageid:
session_start();
var_dump($_SESSION['imageid']);
int 123456
有关会话的更多信息,请参阅php文档:http://php.net/manual/en/book.session.php