我试图在我的网站上实现 Tagit,但我无法让标签数组以我希望的方式运行...
我用谷歌搜索并尝试了很多不同的东西,但无法让它工作。
这是我的 JavaScript 函数:
function saveSkillTags( tags ) {
$.ajax({
type: "POST",
dataType: "json",
traditional: true,
url: "/../includes/ajaxController.php",
data: {actionCommand : "SAVE_SKILL_TAGS", tags : tags }
}).done(function( res ) {
console.debug('klar');
});
}
Console.debug 向我展示了“tags”数组如下所示:
[Object { label="php", value="php", element=[1], mer...}, Object { label="ajax", value="ajax", element=[1], mer...}, Object { label="javascript", value="javascript", element=[1], mer...}, Object { label="jquery", value="jquery", element=[1], mer...}]
它发布到我的 ajaxController 有这个代码:
if( $actionCommand == 'SAVE_SKILL_TAGS' ) {
require_once( dirname( __FILE__ ).'/../classes/stuff.class.php' );
$list = new UserStuff();
$list->saveSkillTags( $utility->getUserId(), $_POST['tags'] );
}
所以,到目前为止一切顺利...
然后在 stuff.class.php 我有函数“saveSkillTags”。这就是问题所在...我尝试对json进行编码和解码,并在没有json的情况下尝试了它,但是我无法正常工作...这是函数:
function saveSkillTags( $userId, $tags ) {
$dbCon = new DBConnection();
//$tags = json_decode($tags);
error_log($tags);
foreach ( $tags as $tag => $value ) {
$skillTag = $dbCon->escape( $value );
$query = "INSERT INTO skilltag SET ";
$query .= "User_fk=".$userId;
$query .= ", TagName='".$skillTag."'";
$dbCon->execute( $query );
error_log($query);
}
mysql_close();
echo 'true';
}
如您所见,我 error_log $tags。
当我运行这个设置时,我得到了两个错误。第一个是 $tags var,第二个是生成的。
[24-Aug-2012 22:28:35] [object Object]
[24-Aug-2012 22:28:35] PHP Warning: Invalid argument supplied for foreach() in C:\Users\...\classes\stuff.class.php on line 103
我现在已经摆弄了几个小时,并开始严重怀疑我的编程技能......
请帮助我回到正轨,即使是提示也将不胜感激!