Javascript 试图从文本框中获取数据并将其插入数据库
我有一个表格,用于输入信息和注册帐户。信息被输入到网站上,当按下“注册”按钮时,外部JavaScript方法会对其进行验证,然后使用ajax调用PHP方法,该方法会从文本框中获取信息并将其输入数据库。我似乎无法让PHP运行这些信息Javascript 试图从文本框中获取数据并将其插入数据库,javascript,php,html,Javascript,Php,Html,我有一个表格,用于输入信息和注册帐户。信息被输入到网站上,当按下“注册”按钮时,外部JavaScript方法会对其进行验证,然后使用ajax调用PHP方法,该方法会从文本框中获取信息并将其输入数据库。我似乎无法让PHP运行这些信息 HTML文本框 <form class="quote"> <div class = inliner> <label>Name</label> <input id="na
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页面。在您的示例中,我看不到您在AjaxPOST
调用中传递任何数据代码>不可能是正确的。应该是$\u POST
而不是$\u POST0
。你犯了什么错误?为什么不显示HTML?很抱歉,这是一个未命中类型。它是$name=$\u POST['name'];我没有看到你在发送电话时发送任何实际数据。我没有发送任何数据。我希望php直接从html框中获取信息。我知道如何发送数据。这样不可能吗?我应该发送吗?PHP
无法直接读取HTML
表单数据HTML
表单数据在浏览器端可用,PHP
在服务器端执行。使用Javascript
读取HTML
表单数据,使用AJAX
发送PHP
页面,或者只使用HTML
表单将数据发布到目标PHP页面。在您的示例中,我没有看到您在AjaxPOST
调用中传递任何数据。我建议通过调用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