Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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
Javascript 试图从文本框中获取数据并将其插入数据库_Javascript_Php_Html - Fatal编程技术网

Javascript 试图从文本框中获取数据并将其插入数据库

Javascript 试图从文本框中获取数据并将其插入数据库,javascript,php,html,Javascript,Php,Html,我有一个表格,用于输入信息和注册帐户。信息被输入到网站上,当按下“注册”按钮时,外部JavaScript方法会对其进行验证,然后使用ajax调用PHP方法,该方法会从文本框中获取信息并将其输入数据库。我似乎无法让PHP运行这些信息 HTML文本框 <form class="quote"> <div class = inliner> <label>Name</label> <input id="na

我有一个表格,用于输入信息和注册帐户。信息被输入到网站上,当按下“注册”按钮时,外部JavaScript方法会对其进行验证,然后使用ajax调用PHP方法,该方法会从文本框中获取信息并将其输入数据库。我似乎无法让PHP运行这些信息


HTML文本框

<form class="quote">

    <div class = inliner>
        <label>Name</label>
        <input id="name" type="text" placeholder="Name">
    </div>
    <div class = inliner>
        <label>Surname</label>
        <input id="surname" type="text" placeholder="Surname">
    </div>

    <div>
        <label>Email</label><br>
        <input id="email" type="email" placeholder="Email Address"><br>
    </div>

    <div>
        <label>Address</label><br>
        <input id="Address" type="email" placeholder="Home Address"><br>
    </div>


    <div class = inliner>
        <label>Password</label>
        <input id="Password" type="text" placeholder="Password">
    </div>
    <div class = inliner>
        <label>Verify Password</label>
        <input id="vPassword" type="text" placeholder="Password">
    </div>
    <br><button class="button_1" type="button" onclick="Validate()">Register</button>

</form>
这个PHP文件是一个单独的文件,只包含以下代码。我已经测试过了,如果我手动设置变量而不是试图检索它们,那么数据就会成功地插入到数据库中。因此,从我的测试来看,检索根本不起作用。我还尝试了
$\u请求['name']

这是ajax/xmlhttprequest代码

xmlhttp = new XMLHttpRequest();
var url = "asset/php/inserting.php";
xmlhttp.open("POST",url,true);
xmlhttp.send();

我的建议是使用jQuery库而不是XMLHttpRequest。您需要在HTML的
部分包含一个
标记,以便从一些CDN(内容交付网络)加载jQuery库。同时将
id=“f”
添加到您的
标签中。然后,您的Ajax调用可以简单到:

$.ajax({
    type: "POST",
    url: 'asset/php/inserting.php',
    data: $('#f').serialize(), // serializes the form's elements.
    success: function(msg)
    {
        alert(msg); // show response from the php script.
    }
});

我的建议是使用jQuery库而不是XMLHttpRequest。您需要在HTML的
部分包含一个
标记,以便从一些CDN(内容交付网络)加载jQuery库。同时将
id=“f”
添加到您的
标签中。然后,您的Ajax调用可以简单到:

$.ajax({
    type: "POST",
    url: 'asset/php/inserting.php',
    data: $('#f').serialize(), // serializes the form's elements.
    success: function(msg)
    {
        alert(msg); // show response from the php script.
    }
});

您可以在
ajax
调用中附加变量,您需要在php页面中使用
&
分离变量,使用
=
赋值。即:

 //attaching values to pass
    var data = "name=" + name + "&email=" + email + "&surname=" + surname + "&Address=" + Address + "&Password=" + Password;
    if (window.XMLHttpRequest) {

      request = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
      request = new ActiveXObject("Microsoft.XMLHTTP");
    }


    request.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
       //if success do something here 
  alert("save");
      }
    };

    var url = "asset/php/inserting.php";
    request.open("POST", url, true);
    //send data to php page
    request.send(data);

您可以在
ajax
调用中附加变量,您需要在php页面中使用
&
分离变量,使用
=
赋值。即:

 //attaching values to pass
    var data = "name=" + name + "&email=" + email + "&surname=" + surname + "&Address=" + Address + "&Password=" + Password;
    if (window.XMLHttpRequest) {

      request = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
      request = new ActiveXObject("Microsoft.XMLHTTP");
    }


    request.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
       //if success do something here 
  alert("save");
      }
    };

    var url = "asset/php/inserting.php";
    request.open("POST", url, true);
    //send data to php page
    request.send(data);


$name=$\u POST0['name']不可能是正确的。应该是
$\u POST
而不是
$\u POST0
。你犯了什么错误?为什么不显示HTML?很抱歉,这是一个未命中类型。它是$name=$\u POST['name'];我没有看到你在发送电话时发送任何实际数据。我没有发送任何数据。我希望php直接从html框中获取信息。我知道如何发送数据。这样不可能吗?我应该发送吗?
PHP
无法直接读取
HTML
表单数据
HTML
表单数据在浏览器端可用,
PHP
在服务器端执行。使用
Javascript
读取
HTML
表单数据,使用
AJAX
发送
PHP
页面,或者只使用
HTML
表单将数据发布到目标PHP页面。在您的示例中,我看不到您在Ajax
POST
调用中传递任何数据不可能是正确的。应该是
$\u POST
而不是
$\u POST0
。你犯了什么错误?为什么不显示HTML?很抱歉,这是一个未命中类型。它是$name=$\u POST['name'];我没有看到你在发送电话时发送任何实际数据。我没有发送任何数据。我希望php直接从html框中获取信息。我知道如何发送数据。这样不可能吗?我应该发送吗?
PHP
无法直接读取
HTML
表单数据
HTML
表单数据在浏览器端可用,
PHP
在服务器端执行。使用
Javascript
读取
HTML
表单数据,使用
AJAX
发送
PHP
页面,或者只使用
HTML
表单将数据发布到目标PHP页面。在您的示例中,我没有看到您在Ajax
POST
调用中传递任何数据。我建议通过调用encodeURIComponent传递每个表单元素,以防值包含有问题的字符。还缺少一个
onreadystatechange
处理程序。我现在已经尝试过了。出于某种原因,它只是不起作用。我检查所有变量名称是否正确。请求已发出,但php只是没有将信息输入变量中。您有任何错误吗?检查控制台,同时检查
var data=“name+encodeURIComponent(name)+&email=…..等”中的ajax请求因为如果在其中一个表单值中有一个“&”或“?”或某个字符不在ASCII字符集中,会发生什么情况?我检查了控制台,没有发现错误,不过还是要谢谢。我建议通过调用encodeURIComponent来传递每个表单元素,以防值包含有问题的字符。还缺少一个
onreadystatechange
处理程序。我现在已经尝试过了。出于某种原因,它只是不起作用。我检查所有变量名称是否正确。请求已发出,但php只是没有将信息输入变量中。您有任何错误吗?检查控制台,同时检查
var data=“name+encodeURIComponent(name)+&email=…..等”中的ajax请求因为如果在其中一个表单值中有一个“&”或“?”或某个字符不在ASCII字符集中,会发生什么情况?我检查了控制台,没有发现错误,不过还是要谢谢。它现在正在使用jquery。我需要在javascript文件中声明f,因为它当前是外部的吗?好的,我将您所说的和Swati
数据结合起来:“name=“+name+”&姓氏=“+name+”&email=“+email+”&Address=“+Address+”&Password=“+pass,
发送变量,它现在正在工作。
=
。如果您没有使用我的
$('#f').serialize()
代码来序列化表单,那么您最好使用
数据:“name=“+encodeURIComponent(name)+etc…”
正如我在前面的评论中指出的那样,或者有一天您可能会遇到无法工作的数据。这就是为什么您的版本是n