PHP - 无法插入正确的时间格式

时间:2014-11-28 19:48:27

标签: php jquery mysql ajax json

我正在尝试执行一个计划程序,我想用Ajax在我的数据库中插入几个小时。

如果我自己插入(硬编码)一切都很好。但是当我需要使用我的数组时,看起来json正在改变它,我的第一个位置不再是正确的,如果我插入11:00,它只将00:00:01放入我的数据库。

这是我的JQuery / Ajax

<script type='text/javascript'>
        $("#btnExporter").click(function(){
        //It create an array of vals from my input (if i do an alert, it works )
            var listeElement= $("input[type='text'].inputTableau")
                     .map(function(){return $(this).val();}).get();

            $.ajax({                                                // préparation et appel AJAX
                url: "/ajax/Exporter.php",
                type: "POST",
                data: ({nomModele: $('#txtNomExporter').val(), arrayExportation: listeElement, departement : $('#listeDepartement').val()}),        //On envoie le contenu des inputs
                dataType: "json",
                async:false,
                success: 

                function(){                                     //  SUCCES: On avertie que la sauvegarde a fonctionne
                alert('Exportation réussi');                            
                },
                error: function(xhr, ajaxOptions, thrownError) {                        // ERREUR AJAX, affiche le status et l'erreur
                            alert(' Erreur : ' + xhr.status + '\n' + thrownError);
                }
            });

        }); 
    </script>

这是我的PHP

<?php
session_start();
include_once("../includes/errorFct.inc");
include_once("../includes/identFct.inc");
include_once("../includes/fctPhpAdm.php");
$ListeChamps = $_POST['arrayExportation'];

//Name of the schedule
$nomModele = $_POST['nomModele'];
//Departement id
$departementid = $_POST['departement'];
//The array that contains the hours
$ListeChamps = $_POST['arrayExportation'];

// Faire la connexion et en cas d'erreur en avertir l'utilisateur
    global $dbhost, $dbuser, $dbpass, $db;
    $dbc = mysql_connect($dbhost, $dbuser, $dbpass)
        or die('La base de donn�e semble down.');

    if ($db!='' and !@mysql_select_db($db))
        die('La base de donn�e est inaccessible.');   
   //This is working well   
   //$sql = mysql_query("INSERT INTO MODEL_HORAIRE(idDepartement, Nom, HeureDebutLundi) VALUES (3,'Allo', '11:00');");

   $sql = mysql_query("INSERT INTO MODEL_HORAIRE(idDepartement, Nom, HeureDebutLundi) VALUES ($departementid,'$nomModele', '$ListeChamps[0]');");

    $dbc->query($sql)
?>

非常感谢你的帮助!

编辑 :我忘了问我想要什么哈哈,我想知道是否可以像我们想的那样保留我的阵列,以及如何我可以保持我的时间,就像他们在我的输入(11:00而不是00:01)。

再次感谢!

1 个答案:

答案 0 :(得分:0)

我发现为什么3小时之后,我会为其他人提供解决方案,这可能需要和我一样。当你在AJAX中推送它时,JSON对数组有一些问题。您只需要使用JSON.stringify()推送数组并在PHP中将其展开,这就是它现在的样子 - &gt;

Jquery:

var listeElement= $("input[type='text'].inputTableau")
                     .map(function(){return $(this).val();}).get();

                var jsonText = JSON.stringify(listeElement);

             $.ajax({                                               // préparation et appel AJAX
                url: "/ajax/Inscrire.php",
                type: "POST",
                data: ({action : "set_Inscription", arrayExportation : jsonText, departement : $('#listeDepartement').val(), employe : $('#listeEmployes').val(), 
                dateHoraire : $('#jour').val(), projet : $('#listeProjet').val(), note : $('#txtNote').val()}),     
                dataType: "json",
                async:false,
                success: 

                function(data)
                {
                    alert(data);                                        //  SUCCES: On avertie que la sauvegarde a fonctionne                           
                },
                error: function(xhr, ajaxOptions, thrownError) {                        // ERREUR AJAX, affiche le status et l'erreur
                            alert(' Erreur : ' + xhr.status + '\n' + thrownError);
                }
            });

PHP

$ListeChamps = $_POST['arrayExportation'];
    $ListeChamps = str_replace('\"',"",$ListeChamps);
    $ListeChamps = str_replace('[',"",$ListeChamps);
    $ListeChamps = str_replace(']',"",$ListeChamps);

    $ValeurTerminale =  explode(',', $ListeChamps);

    for($i=0;$i<count($ValeurTerminale);$i++)
    {
        $ValeurTerminale[i] = mysql_real_escape_string($ValeurTerminale[i]);
    }

现在我们有一个PHP数组! 之前,它是一个单独的字符串,所以我得到了我的字符串的第一个字符。这就是为什么它是00:00:01而不是11:00:00。