2017-10-09 74 views
0

我瀏覽了一下,很遺憾,我在網站上找到的解決方案似乎沒有解決我的問題。通過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> 

非常感謝,併爲我的糟糕代碼道歉!

回答

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

你的ajax腳本確實有效。 但是你的php代碼沒有返回任何東西。在代碼的末尾放置exit($msg);,看看會發生什麼。

相關問題