我有一个表单,您必须通过添加链接或上传图像来添加图像。当你加载页面时,有一个url的输入文本,并且有一个我编写脚本的按钮,用于将输入文本的HTML更改为输入文件。
效果很好,但提交表单时出现问题,该动态上传输入的$ _FILE数组不存在。
这是用于交换输入的javascript代码:
function SwapImageMode()
{
if(imageMode == 0)
{
imageMode = 1;
$("#f_imagearea").html("<input type='file' name='addon_imgupld' id='f_upimgimput' name='addon_imgupld' style='margin-bottom:7px;' accept='image/*' onchange='inputFileChange();'/>");
}
else if(imageMode == 1)
{
imageMode = 0;
$("#f_imagearea").html("<input type='text' name='addon_imgurl' class='styled_imput f_imgimput' onFocus=imgUrlImputFocus(); onBlur=imgUrlImputBlur(); />");
}
}
提交表单时的PHP代码:
if(isset($_POST["addon_imgurl"]) && !isset($_POST["addon_imgupld"]))
{
$formImgMethod = 1; // link
}
else if(isset($_POST["addon_imgupld"]) && !isset($_POST["addon_imgurl"]))
{
$formImgMethod = 2; // upload
}
if($formImgMethod == 2)
{
echo($_FILES["addon_imgupld"]["name"]);
}
这是php的错误:
Notice: Undefined index: addon_imgupld in
C:\xampp\htdocs\addexp\agregar\index.php on line 49
答案 0 :(得分:1)
错误很简单。您正在尝试访问不存在的数组键,因此您需要检查不同类型的表单提交。
只需在PHP表单处理程序中编写一个简单的条件:
if( !empty($_FILES["addon_imgupld"]) ){
//file input
} elseif( !empty($_REQUEST["addon_imgurl"]) ) {
//text input
} else {
//error?
}
你会想要用任何类型的请求交换$ _REQUEST($ _POST,我假设......)。
UPDATE ::
这种条件错误:
else if(isset($_POST["addon_imgupld"]) && !isset($_POST["addon_imgurl"]))
应该是:
else if(isset($_FILES["addon_imgupld"]) && !isset($_POST["addon_imgurl"]))
更新2 ::
您是否将表单编码类型设置为multipart?如果没有,请将此属性添加到表单标记:
enctype="multipart/form-data"