簡體   English   中英

從文本字段中獲取文本並使用它更新數據庫

[英]grabbing text from a text field and updating db with it

我試圖從一個文本字段中獲取文本,然后使用它來更新我的數據庫。 我嘗試使用會話,獲取,發布和cookie來使用php來獲取值,但這不起作用。 我是php新手,所以我認為這是空白的,因為它是服務器端的。 我是用javascript完成的,它可以獲取值,但是我不確定如何在php中使用它或更新mysql。 任何幫助表示贊賞。 這是我的一些示例代碼:我在單獨的php頁面上進行了更新,但是我的文本區域的輸入甚至都沒有被捕獲

<?php

function update_db(){
 // echo $_POST["comment"]; 
 $nenabled = $_GET['enabled'];
$comments_new = htmlspecialchars($_GET['comment']);
$nemail = $_GET['email'];

  echo ("<script>console.log('$comments_new')</script>");
?>

<form method ="get" action ="update_user.php">
  <input type="hidden" name = "enabled" value = "nenabled">
  <input type="hidden" name = "comments" value = "comments_new">
  <input type="hidden" name = "email" value = "nemail">

  <input type="submit" >

 <script>

 function doFunction() {

 var com = document.getElementById("comment");
alert(com.value);
 // var comment = '<?php update_db(); ?>';
}

</script>

你有類似的東西:

<input type="hidden" name = "comments" value = "comments_new">

那你怎么能期待

 document.getElementById("comment");

將工作? 您應該在HTML中添加ID,例如:

 <input type="hidden" id="comment" name = "comments" value = "comments_new">

您將無法從javascript函數內部調用PHP函數。 頁面呈現后,PHP不能再修改頁面,因為它是服務器端專用語言。 但是,有兩種常見的方法可以做到這一點,第一種是將您的文本輸入包裝在表單中,並包括一個提交按鈕,該按鈕使用您的代碼調用php文件,以將值插入數據庫。 如果您使用Google搜索,這里有很多不錯的教程,但是http://html.net/tutorials/php/lesson11.php是一個非常不錯的教程。

另一種方法,聽起來像是最適合您的方法,是使用AJAX來調用php函數。 您永遠不會離開頁面,並且可以處理成功和錯誤情況。 AJAX支持GET和POST數據到您的php文件。 再說一次,這里並沒有重新發明輪子,而是一個很棒的AJAX教程,該教程使用GET和POST,單個數據,多個項目,返回數據等進行了詳細說明。http://hayageek.com/jquery-ajax-post/

希望有幫助!

如果要在提交表單時更新數據庫,則無需在javascript中導入php代碼。 您只需要在提交表單時將AJAX請求發送到您的php服務器即可。 對於AJAX請求,您還可以使用jQuery。

首先,您必須修改html表單,例如:

<form onsubmit="return false;">
    <input type="hidden" id="name" name = "enabled" value = "nenabled"></input>
    <input type="hidden" id="comments" name = "comments" value = "comments_new"></input>
    <input type="hidden" id="email" name = "email" value = "nemail"></input>
    <input type="button" onclick="update()" value="Submit">
</form>

因此,單擊提交按鈕后,將調用更新功能。 更新函數將獲取輸入值,並調用另一個函數來發送AJAX請求。 所以我寫道:

 <script type="text/javascript">
        function update(){
            var data = {
                name : document.getElementById("name").value,
                comments : document.getElementById("comments").value,
                email : document.getElementById('email').value
            };
            loadXMLDoc(data);

        }

        //Ajax request function
        function loadXMLDoc(data)
        {
            var xmlhttp;
            if (window.XMLHttpRequest)
            {// code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp=new XMLHttpRequest();
            }
            else
            {// code for IE6, IE5
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange=function()
            {
                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
                }
            }
            xmlhttp.open("POST","updateDB.php",true);
            xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            xmlhttp.send("name="+data.name+"&comments="+data.comments+"&email="+data.email);
        }

    </script>

AJAX請求將POST請求發送到

your base url + 'updateDB.php' 

與數據:-

name:nenabled,
comments:comments_new,
email:nemail,

因此,現在您可以在服務器端php代碼中完成剩下的事情來更新數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM