在IE上我的表单很难

时间:2013-10-15 14:41:08

标签: forms internet-explorer

我有一个网站表单,完美无瑕。除了IE 10之外它根本不起作用,虽然如果我启用兼容模式就足够奇怪了,它可以正常工作90%。

打开它,它会提交表单然后给我一个错误,说明有错误(这是关于图像的内部消息,尚未上传 - 尽管表格的其余部分已上传)。

*因此,如果没有兼容模式,它将无法工作(它将提交空白条目结果,而不会实际进入下一个屏幕)。

对于兼容模式,它不会上传用户的图像*

我认为问题在于流程表格。

    <?php
include('config.php');
ini_set('error_reporting', E_ALL);
ini_set('display_errors', '1');

require_once('db.php');

$db = new db();

$cats = array();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['cats'])) {
        $cats = implode(",", $_POST['cats']);
    }
    $categories = $_POST['categories'];

    $str = $categories . ": " . $cats;
    //echo $str;
}

$data   = array();
$data[] = !empty($_POST['company']) ? $_POST['company'] : '';
$data[] = !empty($_POST['phone']) ? $_POST['phone'] : '';
$data[] = !empty($_POST['website']) ? $_POST['website'] : '';
$data[] = !empty($_POST['messagefr']) ? $_POST['messagefr'] : '';
$data[] = !empty($_POST['messageen']) ? $_POST['messageen'] : '';
$data[] = !empty($str) ? $str : '';
$data[] = !empty($_POST['profession']) ? $_POST['profession'] : '';
$data[] = !empty($_POST['manufacturiers_stand']) ? $_POST['manufacturiers_stand'] : '';
$data[] = !empty($_POST['percent_quebec']) ? $_POST['percent_quebec'] : '';
$data[] = !empty($_POST['percent_canada']) ? $_POST['percent_canada'] : '';
$data[] = !empty($_POST['percent_usa']) ? $_POST['percent_usa'] : '';
$data[] = !empty($_POST['percent_autre']) ? $_POST['percent_autre'] : '';
$data[] = !empty($_POST['bt_export']) ? $_POST['bt_export'] : '';
$data[] = !empty($_POST['bt_exporte_souhaite']) ? $_POST['bt_exporte_souhaite'] : '';
$data[] = !empty($_POST['bt_prod_verts']) ? $_POST['bt_prod_verts'] : '';
$data[] = !empty($_POST['bt_new_prod']) ? $_POST['bt_new_prod'] : '';
$data[] = !empty($_POST['name']) ? $_POST['name'] : '';
$data[] = !empty($_POST['email']) ? $_POST['email'] : '';
$data[] = !empty($_POST['resource_phone']) ? $_POST['resource_phone'] : '';
$data[] = !empty($_POST['personne_ressource']) ? $_POST['personne_ressource'] : '';
$data[] = !empty($_POST['backup_name']) ? $_POST['backup_name'] : '';
$data[] = !empty($_POST['backup_email']) ? $_POST['backup_email'] : '';
$data[] = !empty($_POST['backup_phone']) ? $_POST['backup_phone'] : '';


$result = $db->query("INSERT INTO form_corpo_test (compagnie,
                                                        telephone,
                                                        site_web,
                                                        texte_fr,
                                                        texte_en,
                                                        categories,
                                                        profil_exposant,
                                                        stands_du_manufacturier,
                                                        pourcentage_quebec,
                                                        pourcentage_canada,
                                                        pourcentage_usa,
                                                        pourcentage_autre,
                                                        exporte,
                                                        exporte_souhaite,
                                                        produits_vert,
                                                        nouveau_produits,
                                                        nom,
                                                        courriel,
                                                        telephone_ressource,
                                                        personne_ressource_c_toi,
                                                        autre_personne_ressource,
                                                        autre_courriel,
                                                        autre_telephone)



                                                        VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", $data);



if (!$result) {
    echo 'Veuillez nous contactez si vous voyez ce message';
}


$pic = ($_FILES['photo']['name']);
$pic = (mysql_real_escape_string($_FILES['photo']['name']));


$dirPath   = $_POST['company'];
$dirExists = is_dir($dirPath);

if (@!dirExists)
    $dirExists = mkdir($dirPath, 0755);

@$result = mkdir($dirPath, 0755);
if ($result == 1) {
    echo '<br/>' . 'Le dossier ' . $dirPath . " a été créer" . '<br/>';
} else {
    echo '<br/>' . "Le dossier " . $dirPath . " n'a PAS été créer car il existe déja" . '<br/>';
}


$folder_name = $dirPath;
$folder      = $folder_name . '/';
$folder      = $folder . basename($_FILES['photo']['name']);


if ($_FILES["photo"]["size"] >= 10485760) {
    echo "F2";
    die();
}

if (move_uploaded_file($_FILES['photo']['tmp_name'], $folder)) {


    echo '<br/>' . "Le fichier " . basename($_FILES['photo']['name']) . " a été téléchargé" . '<br/>' . '<br/>' . "Et nous avons bien recu votre formulaire!" . '<br/>';
} else {


    echo '<br/>' . "Désolé, mais il y a eu une erreur." . '<br/>';
}



?>

根据请求在此处发布我的表单(它太长了2000个字符),所以我将它发布在一个小提琴上:

http://jsfiddle.net/NdRJV/

修改

正如Zeeba建议的那样,我强迫IE浏览另一个浏览器:

我用过

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">

但是,要阅读有关该主题的更多信息,其他任何需要此功能的人都可以访问: What does <meta http-equiv="X-UA-Compatible" content="IE=edge"> do?

1 个答案:

答案 0 :(得分:1)

尝试将此添加到元标记

<meta http-equiv="X-UA-Compatible" content="IE=edge" >