Php 使用AJAX将多个输入表单字段发布到mySQL数据库
我正在尝试使用Java脚本通过AJAX请求将多个表单项从HTML提交到mySQL。我可以更新一个字段,但不能更新其他2个字段。我已经注释掉了我认为有助于这一点的其他代码,但没有起作用Php 使用AJAX将多个输入表单字段发布到mySQL数据库,php,mysql,ajax,Php,Mysql,Ajax,我正在尝试使用Java脚本通过AJAX请求将多个表单项从HTML提交到mySQL。我可以更新一个字段,但不能更新其他2个字段。我已经注释掉了我认为有助于这一点的其他代码,但没有起作用 HTML part: <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”> <head> <script type="text/
HTML part:
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
“http://www.w3.org/TR/html4/loose.dtd”>
<head>
<script type="text/javascript">
function insert() {
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById('message').innerHTML = xmlhttp.responseText;
}
}
parameters = 'fname='+document.getElementById('fname').value;
xmlhttp.open("POST", "update.php", true);
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlhttp.send(parameters);
} ;
</script>
</head>
<body>
First Name: <input class="work" type="text" id="fname" ><br>
Middle Name: <input class="work" id="mname" type="text"><br>
Last Name: <input class="work" id="lname" type="text"><br>
<input type="button" value="Submit" onclick="insert();">
<div id="message"></div>
</body>
</html>
PHP part:
<?php
//require 'connect.midasproject.php';
$conn_error = 'could not connect.';
$dbhost = "localhost";
$dbname = "mastergolddb";
$dbuser = "root";
$dbpass = "";
if (!@mysql_connect("$dbhost", "$dbuser", "$dbpass")||!@mysql_select_db ("$dbname")) {
die($conn_error);
} else {
echo 'connected.';
}
$fname = $_POST['fname'];
//$mname = $_POST['mname'] ;
//$lname = $_POST['lname'];
if (!empty($fname)) {
$query = "INSERT INTO `customers` VALUES ('','$fname','joe','blow')";
if ($query_run = mysql_query($query)) {
echo 'data inserted.' ;
} else {
echo 'Query failed.';
}
}
?>
HTML部分:
函数插入(){
if(window.XMLHttpRequest){
xmlhttp=新的XMLHttpRequest();
}否则{
xmlhttp=newActiveXObject('Microsoft.xmlhttp');
}
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById('message').innerHTML=xmlhttp.responseText;
}
}
参数='fname='+document.getElementById('fname').value;
open(“POST”,“update.php”,true);
setRequestHeader('Content-type','application/x-www-form-urlencoded');
send(参数);
} ;
名字:
中间名:
姓氏:
PHP部分:
您需要将所有3个值传递给ajax函数。您似乎只是在这里传递fname
parameters='fname='+document.getElementById('fname').value
您没有发送其他字段,只发送了fname
字段。您需要在SQL查询中再次使用这些字段,'{$fname}',{$mname}',等等
如何传递其他值?我尝试了多种组合,将其他mname和lname输入字段添加到“参数”中,但代码失败。当我创建变量$mname=$\u POST['mname']时$lname=$_POST['lname'];代码也失败了。我在SQL查询中使用了它们,我将Joe和blow作为常量输入,以显示代码是否有效,但当我传入$mname和$lname时,它就不起作用了。我如何传递其他值?顺便说一句,这篇文章的HTML代码没有发布。。我现在正在尝试如何编辑问题以附加它