Javascript 从使用POST发送的AJAX请求中检索多个输入
我的PHP代码如下所示:Javascript 从使用POST发送的AJAX请求中检索多个输入,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我的PHP代码如下所示: function openV(){ var obj=document.getElementById("name").name+"="+document.getElementById("name").value+"&"+document.getElementById("comp").name+"="+document.getElementById('comp').value+"&"+document.getElementById('pass').name+
function openV(){
var obj=document.getElementById("name").name+"="+document.getElementById("name").value+"&"+document.getElementById("comp").name+"="+document.getElementById('comp').value+"&"+document.getElementById('pass').name+"="+document.getElementById('pass').value;`
var oReq = new XMLHttpRequest();
oReq.onreadystatechange=function() {
if(this.readyState==4&&this.status==200){
window.alert(this.responseText);}
};
oReq.open("POST", "Validiation.php","true");
oReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
oReq.send(obj);}
我可以访问$name
,但问题是我无法在代码中访问$company
警报信息显示:
连接成功SidharthCompany先生:我认为您应该检查
document.getElementById(“comp”).name的元素名称
更改:
致:
我认为您应该检查document.getElementById(“comp”).name的元素名
更改:
致:
您得到的名称=>
$company=$_REQUEST["comp"];
关于#名称
你的公司=>
$ _request ['name']
但是它的id#comp你得到了名字=>
$company=$_REQUEST["comp"];
关于#名称
你的公司=>
$ _request ['name']
但它的id是comp
当Ajax函数发送POST请求时,PHP脚本应该处理POST数组。使用REQUEST允许用户发送querystring(GET)或POST请求,因此比只处理POST安全性稍差
PHP脚本需要处理的字段可能是name
、comp
和pass
,但由于javascript使用ID查找元素的名称,情况可能并非如此。例如,ID可以是name
,但据我们所知,名称可能是geronimo
——这使得PHP端的处理变得棘手,因为名称不一定是已知的
但是,假设每个表单元素的名称和ID相同,那么您将/可以像这样在服务器端处理请求
function openV(){
var $=function(n){
return document.getElementById( n );
};
var obj=[];
['name','comp','pass'].forEach(function(e,i,a){
obj.push( $(e).name+'='+$(e).value );
});
obj=obj.join('&');
var oReq = new XMLHttpRequest();
oReq.onreadystatechange=function() {
if( this.readyState==4 && this.status==200 ){
alert(this.response);
}
};
oReq.open('POST', 'Validiation.php','true');
oReq.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
oReq.send(obj);
}
当Ajax函数发送POST请求时,PHP脚本应该处理POST数组。使用REQUEST允许用户发送querystring(GET)或POST请求,因此比只处理POST安全性稍差
PHP脚本需要处理的字段可能是name
、comp
和pass
,但由于javascript使用ID查找元素的名称,情况可能并非如此。例如,ID可以是name
,但据我们所知,名称可能是geronimo
——这使得PHP端的处理变得棘手,因为名称不一定是已知的
但是,假设每个表单元素的名称和ID相同,那么您将/可以像这样在服务器端处理请求
function openV(){
var $=function(n){
return document.getElementById( n );
};
var obj=[];
['name','comp','pass'].forEach(function(e,i,a){
obj.push( $(e).name+'='+$(e).value );
});
obj=obj.join('&');
var oReq = new XMLHttpRequest();
oReq.onreadystatechange=function() {
if( this.readyState==4 && this.status==200 ){
alert(this.response);
}
};
oReq.open('POST', 'Validiation.php','true');
oReq.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
oReq.send(obj);
}
表单输入命名和来自_请求的预期参数之间存在差异-您预期:
<?php
if( $_SERVER['REQUEST_METHOD']=='POST' ){
$name=$_POST["name"];
$company=$_POST["comp"];
$password=$_POST["pass"];
//Create Connection
$conn=new mysqli("127.0.0.1","root","");
//Check Connection - in production never reveal too much/any db information!!!
if( $conn->connect_error ) die('Connection error:'.$conn->connect_error);
echo 'Connection successful Mr '.$name;
echo 'Company: '.$company;
}
?>
但是根据JS,实际的表单输入名称是'comp'和'pass',这将获取输入字段,并且如果表单输入ID等于表单输入名称/。如果JS是正确的,那么您需要更改PHP以获得相应的参数:
$company=$_REQUEST["company"];
$password=$_REQUEST["password"];
但如果JS部分中的输入名称错误,则需要修复JS:
$company=$_REQUEST["comp"];
$password=$_REQUEST["pass"];
表单输入命名和来自_请求的预期参数之间存在差异-您预期:
<?php
if( $_SERVER['REQUEST_METHOD']=='POST' ){
$name=$_POST["name"];
$company=$_POST["comp"];
$password=$_POST["pass"];
//Create Connection
$conn=new mysqli("127.0.0.1","root","");
//Check Connection - in production never reveal too much/any db information!!!
if( $conn->connect_error ) die('Connection error:'.$conn->connect_error);
echo 'Connection successful Mr '.$name;
echo 'Company: '.$company;
}
?>
但是根据JS,实际的表单输入名称是'comp'和'pass',这将获取输入字段,并且如果表单输入ID等于表单输入名称/。如果JS是正确的,那么您需要更改PHP以获得相应的参数:
$company=$_REQUEST["company"];
$password=$_REQUEST["password"];
但如果JS部分中的输入名称错误,则需要修复JS:
$company=$_REQUEST["comp"];
$password=$_REQUEST["pass"];
我纠正了它。首先,它使用name属性来标识变量。其次,我更改了所有元素的id,所以现在代码是这样的。
Javascript:
PHP
我纠正了它。首先,它使用name属性来标识变量。其次,我更改了所有元素的id,所以现在代码是这样的。
Javascript:
PHP
也许您需要使用$company=$\u请求[“comp”]代码>?可能您需要使用$company=$\u请求[“comp”]代码>?不,不工作ID='comp'和name='company'不,不工作ID='comp'和name='company'