Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用AJAX将多个输入表单字段发布到mySQL数据库_Php_Mysql_Ajax - Fatal编程技术网

Php 使用AJAX将多个输入表单字段发布到mySQL数据库

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/

我正在尝试使用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/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代码没有发布。。我现在正在尝试如何编辑问题以附加它