2017-06-09 6 views
0
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);} 

Mein PHP-Code wie folgt aussieht:Abrufen mehrere Eingabe von einem AJAX-Request gesendet POST

<?php 

$name=$_REQUEST["name"]; 
$company=$_REQUEST["company"]; 
$password=$_REQUEST["password"]; 

//Create Connection 
$conn=new mysqli("127.0.0.1","root",""); 

//Check Connection 
if($conn->connect_error) 
{ 
    die('Connection error:'.$conn->connect_error); 
    } 
echo 'Connection successful Mr '.$name; 
echo 'Company: '.$company; 
?> 

ich in der Lage bin zu $name zugreifen, aber das Problem ist, dass ich nicht $company in meinem Code zugreifen kann.

Die Warnmeldung sagt: Verbindung erfolgreich Herr SidharthCompany:

+0

vielleicht brauchen Sie '$ Firma zu verwenden = $ _ REQUEST [ "comp"];'? – kRicha

Antwort

0
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); 
} 

Da die Ajax-Funktion POST-Anfragen sendet dann das PHP-Skript sollte die POST-Array verarbeiten. Mit REQUEST können Benutzer eine Anfrage für Querystring (GET) oder POST senden, die etwas weniger sicher ist als nur die Verarbeitung von POST.

Die Felder der PHP-Skript, mit arbeiten muss, wie es scheint, sind name, comp und pass aber als Javascript wird mit der ID den Namen des Elements zu finden, das nicht der Fall sein könnte. Die ID könnte zum Beispiel name sein, aber der Name könnte geronimo für alles sein, was wir wissen - was die Verarbeitung auf der PHP-Seite schwierig macht, da die Namen nicht unbedingt bekannt sind.

Vorausgesetzt, dass der Name und die ID für jedes Formularelement identisch sind, würden Sie die Anfrage serverseitig bearbeiten.

<?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; 
    } 
?> 
3

Ich glaube, Sie Ihr Element Namen document.getElementById("comp").name ändern überprüfen sollten:

$company=$_REQUEST["company"]; 

An:

$company=$_REQUEST["comp"]; 
+0

Nein, das funktioniert nicht ID = 'comp' und name = 'company' –

0

Sie erhalten der Name =>

$ _request ['name'] 

für #name Ihr Unternehmen =>

$ _request ['company'] 

aber seine ID #comp

0

Es gibt einen Unterschied zwischen der Formulareingabe Namensgebung und den erwarteten Parameter aus der _REQUEST - Sie erwarten:

$company=$_REQUEST["company"]; 
$password=$_REQUEST["password"]; 

Aber tatsächliche Form Eingangsnamen sind ‚comp‘ und ‚pass‘/nach dem JS, die die Eingabefelder erhält und wenn die Eingabe-IDs des Formulars gleich den Eingabe-Namen des Formulars sind. Wenn das JS richtig ist, dann müssen Sie die PHP ändern, um die entsprechende params zu erwarten:

$company=$_REQUEST["comp"]; 
$password=$_REQUEST["pass"]; 

Aber wenn die Eingangsnamen im JS Teil falsch sind, dann müssen Sie die JS beheben:

var obj=document.getElementById("name").name+"="+document.getElementById("name").value+"&"+document.getElementById("company").name+"="+document.getElementById('company').value+"&"+document.getElementById('password').name+"="+document.getElementById('password').value; 
+0

Nein, das ist nicht der Weg ... –

0

Ich habe es korrigiert. Zuerst verwendet es Name Attribut, um die Variable zu identifizieren. Zweitens änderte ich die ID aller Elemente, also ist der Code das.
Javascript:

var obj=document.getElementById("nam").name+"="+document.getElementById("nam").value+"&"+document.getElementById("comp").name+"="+document.getElementById("comp").value+"&"+document.getElementById("pass").name+"="+document.getElementById("pass").value; 

//Creating the XMLHttpRequest object 
var oReq = new XMLHttpRequest(); 


oReq.onreadystatechange=function() { 
    //This is where you response is handled. 
    //The actual data is found on this.responseText 
    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); 
} 


PHP

<?php 
$name=$_POST["name"]; 
$company=$_POST["company"]; 
$password=$_POST["password"]; 

//Create Connection 
$conn=new mysqli("localhost","root",""); 

//Check Connection 
if($conn->connect_error) 
{ 
    die('Connection error:'.$conn->connect_error); 
    } 
echo 'Connection successful Mr '.$name; 
echo 'Company: '.$company;?> 
Verwandte Themen