我正在使用基于wordpress的网站,而我的问题是在Chrome(以及IE和Edge)下,我发送的数据从未写入我的数据库。 但在Firefox下,它运作良好!
我无法解释为什么存在差异所以我描述了这些数据的路径。愿你能找到神奇的地方!
从用户点击后获取数据后,我通过AJAX发送这些数据:
$.ajax({
type: "POST",
url: "<?php echo get_bloginfo('url').'/insert/'; ?>",
// data: "id_company=" + idcompany + "&id_proposition=" + idProposition + "&id_section=" + idSection + "&id_audit=" + id_audit + "&valeur=" + valeur
data: {
'id_company': idcompany,
'id_proposition': idProposition,
'id_section': idSection,
'id_audit': id_audit,
'valeur': valeur
}
当我查看Chrome控制台时,发送的数据是好的,与firefox完全相同。我甚至验证了这种类型,都是字符串。
然后,在我的“插入”文件中,我有以下几行:
elseif(isset($_POST['id_audit'])){
foreach ($_POST as $key => $value) {
$reponses[$key] = $value;
}
register_iso_reponses($reponses);}
注册功能是:
function register_iso_reponses($reponses){
global $wpdb;
$reponse['date'] = date("Y-m-d");
$rep_exist = $wpdb->get_results(
$wpdb->prepare(
"
SELECT *
FROM ss1_iso_reponses
WHERE id_entreprise = %s
AND id_proposition= %s
AND id_audit= %s
",
$reponses['id_company'], $reponses['id_proposition'], $reponses['id_audit']
), ARRAY_A
);
if(!$rep_exist){
$isinsert = $wpdb->query(
$wpdb->prepare(
"
INSERT INTO ss1_iso_reponses
( id_proposition, id_section, id_entreprise, valeur, id_audit, dateReponse )
VALUES ( %s, %s, %s, %s, %s, %s )
",
$reponses['id_proposition'], $reponses['id_section'],
$reponses['id_company'], $reponses['valeur'],
$reponses['id_audit'], $reponse['date']
)
);
}else{
$isupdate = $wpdb->query(
$wpdb->prepare(
"
UPDATE ss1_iso_reponses
SET valeur = %s, dateReponse = %s
WHERE id_entreprise = %s
AND id_proposition = %s
AND id_audit = %s
",
$reponses['valeur'], $reponse['date'],
$reponses['id_company'], $reponses['id_proposition'],
$reponses['id_audit']
)
);
}}
你看到一些可能使它在chrome下出现故障吗?