Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.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 从使用POST发送的AJAX请求中检索多个输入_Javascript_Php_Html_Ajax - Fatal编程技术网

Javascript 从使用POST发送的AJAX请求中检索多个输入

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+

我的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+"="+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'