$ _REQUEST上的未定义索引

时间:2014-02-18 18:01:56

标签: php forms request

我正在尝试为我的数据库中的记录创建更新表单。这是形式:

<form id="form_update_ad" method="post" action="inc/API.php" enctype="multipart/form-data">
    <input type="text" name="input_publisher" id="input_publisher_edt" placeholder="Name" />
    <input type="text" name="input_link" id="input_link_edt" placeholder="Link" />
    <input type="file" name="file2Upload_edt" id="file2Upload_edt" />
    <input type="submit" value="" id="btnUpdate" />
    <input type="hidden" name="command" value="update_ad" />
    <input type="hidden" value="" id="curr_image_filename" />
    <input type="hidden" value="" id="curr_add_id" />
</form>

所有输入字段的值('file'除外)都是用jQuery设置的,它们都设置正确,我仔细检查过。

然后我点击提交按钮后会执行这个jQuery函数:

$("#form_update_ad").on("submit", function(event){
    event.preventDefault();
    // some validations...
    if(errors.length==0)
    {
        $(this).off("submit");
        this.submit();
    }
    else
    {
        // if there are errors - do something here
    }
});

我想在API.php文件中做的是:检查是否正在上传新的图像文件,如果没有 - 将new_image_filename设置为当前文件名(从curr_image_filename隐藏输入字段请求它) ,如果是 - 从服务器删除当前设置的文件,上传新图像,将new_image_filename设置为其名称并更新数据库。所以我写了这段代码:

$newImageFileName = "";
if($_FILES["file2Upload_edt"]["name"]=='')
{
    $newImageFileName = $_REQUEST["curr_image_filename"];
}
else
{
    if(delete_file_from_server($_REQUEST["curr_image_filename"]))
    {
        $newImageFileName = saveImage2Server("file2Upload_edt");
        update_ad($_REQUEST["curr_ad_id"],$_REQUEST["input_publisher"], $newImageFileName, $_REQUEST["input_link"]);
    }
}

但是我一直收到这条错误消息:第21行的mypath \ API.php中的未定义索引:curr_image_filename,这是:$newImageFileName = $_REQUEST["curr_image_filename"];

为什么会发生这种情况?我该如何解决?

1 个答案:

答案 0 :(得分:2)

id != name

<input type="hidden" value="" id="curr_image_filename" />
                              ^^----must be "name" to be submitted as a form field

没有名字,没有提交。并且ID不算作名称。