0

我将创建一个用户可以在 textarea (index.php)中输入内容的页面。当用户点击 Tweet 时,它将获取用户输入到页面tweet.php的所有文本(我使用 jQuery Ajax 方法)。之后,它将重定向到页面show.php

这是我的代码

索引.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Tweet</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
      function save_tweet(text_tweet){
      $.ajax
      ({
        type: "POST",
        url: "tweet.php",
        data: "text="+text_tweet,
        success: function(msg)
        {
          if(msg==1){
            window.location.href="show.php";
          }else{
            alert("Error");
          }
        }               
      });
    }

    $("#tweet").bind('click', function(){
      var text_tweet = $("#text_tweet").val();
      if(text_tweet==""){
        $("#show").html("Blank text");
        return;
      }else{
        $("#show").html("");
        save_tweet(text_tweet);
      }
    });
  });
</script>
</head>
<body>
<center>
<textarea name="text_tweet" cols="61" rows="5" id="text_tweet"></textarea>
<br/>
<div id="show"></div>
<br/>
<a href="#" id="tweet">Tweet</a>
</center>
</body>
</html>

推文.php

<?php
session_start();
if(isset($_POST['text'])){
    $_SESSION['text_tweet'] = $_POST['text'];
}
?>

显示.php

<?php
session_start();
echo $_SESSION['text_tweet'];
?>

问题是当我在 textarea 中输入一些文本并单击 Tweet 时,它会警告错误。谁能知道是什么问题?

预先感谢。

4

4 回答 4

0

你为什么要检查 msg 是否为 1 ?您是否在响应正文中返回 1 ?查看 JQuery 文档,成功函数回调被描述为:

Type: Function( PlainObject data, String textStatus, jqXHR jqXHR )

您可以记录 msg 的值并查看实际包含的内容。

于 2013-09-04T07:33:22.180 回答
0

尝试将您的代码更改为:

$.ajax
      ({
        type: "POST",
        url: "tweet.php",
        data: {text: text_tweet},
        success: function(msg)
        {
          if(msg==1 || msg=="1"){
            window.location.href="show.php";
          }else{
            alert("Error");
          }
        }               
      });

推文.php

<?php
session_start();
if(isset($_POST['text'])){
    $_SESSION['text_tweet'] = $_POST['text'];
    echo 1;
}
?>
于 2013-09-04T07:36:28.050 回答
0

尝试

if(msg.length){
            window.location.href="show.php";
          }else{
            alert("Error");
          }
于 2013-09-04T07:36:46.040 回答
0

在您的 ajax 中添加数据类型:

dataType: 'text',

在您的 ajax 代码中添加以上行。并更改您的以下行:

var text_tweet = $("#text_tweet").val();

与:

var text_tweet = $("#text_tweet").text();

在你的tweet.php文件中添加这一行:

echo "1";
于 2013-09-04T07:38:34.003 回答