2016-06-08 50 views
2

尽管我非常肯定我的代码是好的(做过几次测试),但数据库并未更新。所以必须有一个问题(异步等)。我需要帮助来弄清楚什么是错的。通过Ajax发布到MySql的问题

这里是我的Ajax调用(通过保存按钮的按下,测试和它激发井):

$.ajax({ 
url: "../../../../admin/includes/classes/class.article_front_Post.php",  
type: "POST", 
data: { 
     'articleid': $articleid, 
     'contenu': $contenu, 
     'name': $name 
     } 

}); 

这里是...... front_Post.php文件的内容:

include_once('../../../../init.php'); 

$articleid = $_GET['articleid']; 
$contenu = $_GET['contenu']; 
$name = $_GET['name']; 

// $name = 'special1';    
// $contenu = '<p>test</p>'; 
// $articleid = '17'; 
// above to test the update (it works) 

mysql_query(" 

UPDATE al_articles SET $name='$contenu' 
WHERE (ArticleID='$articleid') 

") or die(mysql_error()); 
+0

什么是错误? –

+0

没有错误 - 感谢它现在解决了。见下文。 – Sergelie

+0

请注意:'mysql_ *'函数已被弃用,并已从PHP 7中删除,已被'myslqi_ *'和'PDO'函数取代,这些函数在使用预准备语句和绑定参数时更安全。 –

回答

0

你的AJAX是使用 “POST”:

$.ajax({ 
url: "../../../../admin/includes/classes/class.article_front_Post.php",  
type: "POST", //<====================================================!!!! 
data: { 
     'articleid': $articleid, 
     'contenu': $contenu, 
     'name': $name 
     } 
}); 

但你的PHP是用 “GET”,因此,更换 “GET” 通过 “POST”:

include_once('../../../../init.php'); 

$articleid = $_POST['articleid']; //<=============================== 
$contenu = $_POST['contenu'];  //<=============================== 
$name = $_POST['name'];   //<=============================== 

// $name = 'special1';    
// $contenu = '<p>test</p>'; 
// $articleid = '17'; 
// above to test the update (it works) 

mysql_query(" 

UPDATE al_articles SET $name='$contenu' 
WHERE (ArticleID='$articleid') 

") or die(mysql_error()); 

或者在您的ajax中用“GET”取代“POST”。无论如何,GET参数可以在URL上看到,所以我建议POST。

+0

是的!谢谢!现在工作! (我会做我的作业,以了解邮政和获取的东西! – Sergelie

+0

@ user3371049,你可以点击复选标记接受答案^ __ –

+1

刚刚做了,再次感谢! - 有一个时间,防止过早做。 – Sergelie