我正在尝试做一个调度程序,我想用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 )。
再次感谢!
我找到了原因 3 小时后,我会为其他可能需要与我相同的东西的人提供我的解决方案。JSON 在 AJAX 中推送数组时存在一些问题。你只需要用 JSON.stringify() 推送数组并在 PHP 中分解它,这就是它现在的样子 ->
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数组!以前,它是一个字符串,所以我得到了字符串的第一个字符。这就是为什么它是