data-attribute不会提交内容

时间:2014-07-20 19:18:33

标签: javascript php jquery twitter

我正在忙着开发我的第一个Twitter应用程序。但是,由于某些原因,我无法解决一些我无法解决的问题。我过去经常使用数据属性,但我不能让它工作。它只是不会提交我的数据属性的内容

我的部分HTML。

<div id="invTweet" class="_invitation-tweet-inner no-select" data-tweet="Here comes the content of the tweet which will be submitted">Here comes the content of the tweet</div>

<div id="post-invitation-tweet" class="button blue post-tweet">Post Tweet</div>

我的部分Javascript

    var tweet = $("#invTweet").attr("data-tweet");      
    $(document).on('click',"#post-invitation-tweet",function(e) {
    e.preventDefault();
        $.ajax({
            type: "POST",
            url: "../includes/db-requests/db-postInvitationTweet.php",
            data: {tweet:tweet},
            success: function(data){    finishInvitationTweet(data);    }
        });
    });

function finishInvitationTweet(data) {
    alert(data);
}

我使用alert(数据)进行调试。当我点击Post Tweet按钮时,将打开一个警报,其中包含“Undefined index:tweet emptyTweet”。请看下面我的db-postInvitationTweet.php的片段:

//Get Tweet data
$tweetMsg = safe($mysqli,$_POST['tweet']);

//Check if $tweetMsg is empty. No > post tweet.
if ($tweetMsg != '') {

$post_tweet = $connection->post('statuses/update', array('status' => $tweetMsg));

if (187 == $connection->http_code) {
  echo "statusDuplicate";
  die();
}

if (!$post_tweet) {
    echo "tweetError";  
} else {
    //Update the invitation_sent column in database
    $stmt = $mysqli->prepare("UPDATE members SET invitation_tweet = '1' WHERE oauth = ? ") or die (mysqli_error($mysqli));
    $stmt->bind_param('s', $access_token['oauth_token']);
    $stmt->execute();
    $stmt->close();
    echo "tweetSuccess";
}

} else {
    echo "emptyTweet";  
}

我缺少什么:')

1 个答案:

答案 0 :(得分:0)

您使用的是哪个版本的jQuery?从版本1.4开始,访问数据属性的适当方法是通过data()方法,请参阅方法签名和文档here

如果你改变了,你可以让它工作得很好。请参阅jsFiddle,将工作解决方案作为概念证明。

更改

var tweet = $("#invTweet").attr("data-tweet");

var tweet = $("#invTweet").data("tweet");