2017-05-31 1 views
-1

Nur mit JavaScript Ich möchte eine Zeichenkette an PHP-Datei POST und gleichzeitig umleiten, aber meine PHP-Datei nimmt die Informationen nicht.Versuch, String dynamisch in PHP zu schreiben

JavaScript:

var data = "&id=" + obj.id; 
    var redirect = function(url, method) { 
     var form = document.createElement('form'); 
     form.method = method; 
     form.action = url; 
     form.value = data; 
     document.body.appendChild(form); 
     form.submit(); 
    }; 

    redirect("summary.php","POST"); 

Und der PHP-Code ist einfach (NO ERROR HIER, der Bequemlichkeit halber JUST):

$id = $_POST['id']; 

EDIT:

Das Problem ist, dass die PHP-Datei ist nicht den Namen "ID" abholen. Es gibt kein Problem in der PHP-Datei oder wie ich meine Daten strukturiere.

+3

'$ ID' nicht' & ID' – Akintunde007

+0

im NETWORK Inspektor sehen Sie die Variable ID mit einem Wert gebucht? –

Antwort

1

Das ist nicht, wie Sie die Daten übergeben. value ist eine Eigenschaft des Eingabeelements eines Formulars, nicht das Formular selbst.

entfernen So die Linie form.value = data; und ersetzen mit

var input = document.createElement('input'); 
input.type = 'hidden'; 
input.name = 'id'; 
input.value = obj.id; 
form.appendChild(input); 

Jetzt sollten Sie in der Lage sein $_POST['id'] zu bekommen.

+0

Ja, das gab mir die Lösung, obwohl ich es selbst herausgefunden habe, das war die Art, wie ich es gemacht habe. –

2

Sie haben einen kleinen Tippfehler gemacht. Obwohl es ein riesiges Problem ist. In PHP erstellen Sie Variablen mit dem $ Zeichen.

var data = "id=" + obj.id;//you don't necessarilly need the & as you are only passing one item(value) 


    var redirect = function(url, method) { 
       var form = document.createElement('form'); 
       form.method = method; 
       form.action = url; 
       //form.value = data;//this won't work. form does not have value attribute: 
       //create input element 
       var i = document.createElement("input"); 
       i.type = "text";//set type. 
       i.name = "id";//set name of the input 
       i.id = "id"; 
       i.value = obj.id;//set value of input 
       form.appendChild(i);//add this input to the form 
       document.body.appendChild(form);//add the form to the body 
       form.submit();//dynamically submit 
      }; 

     redirect("summary.php","POST"); 

In PHP-Skript, greifen sie wie

<?php 
error_reporting(E_ALL);//show all errors and notices 
$id = $_POST['id'];//you forgot the $ sign 
//for debugging, check the post array 
print_r($_POST); 
?> 

EDIT:

Achten Sie darauf, die obj.id nicht null ist

+0

Das ist nicht das Problem, das kann ich Ihnen versichern. Es ist nur weil ich es eingegeben habe. Es ist in der ursprünglichen Datei festgelegt. Wird hier behoben –

+0

Was sagt Ihre Konsole? – Akintunde007

+0

Die Konsole sagt, dass ein Objekt mit dem korrekten Namen nicht als "id" gefunden werden kann. Aber ich habe eine Lösung gefunden. Wird es später veröffentlichen. –

Verwandte Themen