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

问题描述:

我浏览了一下,很遗憾,我在网站上找到的解决方案似乎没有解决我的问题。通过Ajax将数据传递给PHP而无需使用提交按钮

基本上我正在做一个项目,我需要有效地设置日记 - 用户在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的(我在阿贾克斯非常虚弱,我怀疑有很多的问题,在这里 - 也注意到网址我使用实际上是在与JQuery相同的脚本中,我不确定它是否有效)。

的基本思想是每一个用户类型,数据库应更新时间(我知道这是一个很大的呼叫服务器的,我可能会用一个定时的命令替换):

<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> 

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

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

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