通过Ajax将数据传递给PHP而不使用提交按钮

时间:2017-10-09 20:49:04

标签: php jquery html ajax

我已经浏览了一下,不幸的是,我在网站上找到的解决方案似乎无法解决我的问题。

基本上我正在做一个我需要有效设置日记的项目 - 用户在textarea元素中写入,并通过PHP传递给数据库并为用户存储。在讲师的视频中,他似乎没有使用提交按钮(即使他没有,我认为这是一个有趣的事情,学习如何做)。

我有一些问题。这是我的PHP:

<?php 
    session_start();

    if(array_key_exists("id", $_COOKIE)) {
        $_SESSION['id'] = $_COOKIE['id'];

    }

    if(array_key_exists("id",$_SESSION)) {

        echo "Logged in: <p><a href='secretDiaryFinal2.php?logout=1'>
        Log out</a></p>";

    } else {

        header("Location: secretDiaryFinal2.php");

    }


/*    I'm putting in the database update later, for now I just wanted to check if I could 
actually create the POST variable below*/

    $msg = "";

    if(array_key_exists('diaryEntry',$_POST)) {

        $msg = $_POST['diaryEntry'];


    } else  {

        $msg = "Some kind of PHP error";

    }



?>

相关的HTML:

  <body>

    <div id="testDiv">

        <? echo $msg ?>

    </div>

    <div class="container" id="diaryArea">

    <form method="post">
        <textarea id="diary" value=""></textarea>
    </form>

    </div>

相关的JQuery(我对Ajax非常弱,我怀疑这里有很多问题 - 还要注意我使用的url实际上和JQuery在同一个脚本中,我和#39;我不确定这是否有效?)在下面。

基本思想是,每次用户输入时,都应该更新数据库(我意识到这是对服务器的大量调用,我可能会用定时命令替换它):

<script type="text/javascript">

        $("#diary").keyup(function () {

              var dataString = $("#diary").val();

              $.ajax({
                type: "POST",
                url: "loggedInPageFinal.php",
                data: ({diaryEntry:dataString}),
                success: function(data) {

                    console.log(data);

                }


              });

              return false;

        });




    </script>

非常感谢,并为我糟糕的代码道歉!

2 个答案:

答案 0 :(得分:0)

var DataString = $("#diary").val();
$.post( "loggedInPageFinal.php",{dataString:DataString }, function( data ) {
   console.log(data);
});

答案 1 :(得分:0)

你的ajax脚本确实有效。 但你的PHP代码没有返回任何东西。将exit($msg);放在代码的末尾,看看会发生什么。