2012-10-22 34 views
0

我有一个表单,您必须通过添加链接或上传图像来添加图像。当你加载页面时,会有一个url输入文本,并且我有一个按钮,可以将输入文本的HTML更改为输入文件的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

如果您向我们提供错误中引用的PHP代码,将会有所帮助。此外,'inputFileChange()'中的代码也可能与它有关。 –

+0

PHP在表单提交时: echo($ _ FILES [“addon_imgupld”] [“name”]); – Agusfn

+0

@Agusfn让我知道我的答案是否合理,有帮助。 –

回答

1

错误非常简单。您正尝试访问不存在的数组键,因此您需要检查不同类型的表单提交。

只写一个简单的条件在你的PHP表单处理程序:

if(!empty($_FILES["addon_imgupld"])){ 
    //file input 
} elseif(!empty($_REQUEST["addon_imgurl"])) { 
    //text input 
} else { 
    //error? 
} 

你想交换$ _REQUEST与任何类型的请求作出($ _ POST,我认为...)。

更新::

这个条件是错误的:

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" 
+0

我已经做了条件添加图像的方法是上传或通过网址。在我的代码中,如果选择的方法是上传,php应该显示从我的电脑中正确选择的形象的名称。我更新了这个线程的代码.. – Agusfn

+0

看起来你的条件是寻找$ _POST,当它应该寻找$ _FILES。 –

+0

对不起,迟到的回应,好吧,我改变了条件,但问题是,当我提交表格>>与有效文件选择<<在输入文件模式下,它没有检测到任何文件,它doesn' t通过我之前陈述的两个条件中的任何一个(没有上传,不是url)。我现在将验证这是否与在另一个页面中使用静态表单更改输入的动态方法有关... – Agusfn