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