我正在尝试从文本字段中获取文本,然后使用它来更新我的数据库。我已经尝试使用session,get,post和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>
答案 0 :(得分:1)
你有类似的东西: -
<input type="hidden" name = "comments" value = "comments_new">
然后你怎么能指望
document.getElementById("comment");
会奏效吗? 你应该在你的html中添加id,例如: -
<input type="hidden" id="comment" name = "comments" value = "comments_new">
答案 1 :(得分:0)
您将无法从javascript函数内部调用PHP函数。一旦页面呈现,PHP就不能再修改页面,因为它只是一种服务器端语言。有两种常见的方法可以做到这一点,第一种方法是将文本输入包装在一个表单中,并包含一个提交按钮,该按钮使用您的代码调用php文件以将值插入到数据库中。如果你谷歌他们有很多很好的教程,但http://html.net/tutorials/php/lesson11.php是一个非常好的教程。
另一种方式,听起来最适合你的方式是使用AJAX来调用php函数。您永远不会离开您的页面,您可以处理成功和错误条件。 AJAX支持您的php文件的GET和POST数据。再说一次,这里没有重新发明轮子是一个很棒的AJAX教程,它使用GET和POST,单个数据,多个项目,返回数据等来解释。http://hayageek.com/jquery-ajax-post/
希望有所帮助!
答案 2 :(得分:0)
如果要在提交表单时更新数据库,则无需在javascript中导入yout php代码。您只需要在提交表单时向您的php服务器发送AJAX请求。对于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代码中完成其余部分来更新数据库。