2017-05-31 10 views
-1

JavaScriptのみを使用すると、文字列をPHPファイルにPOSTして同時にリダイレクトしたいのですが、PHPファイルが情報を取得していません。動的にPHPに文字列を投稿しようとしています

は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"); 

そしてPHPコードは(JUST便宜上NO ERROR、)単純ではありません:

$id = $_POST['id']; 

はEDIT:

問題はPHPファイルがあるということです名前 "id"を拾わないでください。 PHPファイルやデータの構造に問題はありません。

+3

'$ id'ではなく'&id'ネットワークインスペクタの – Akintunde007

+0

変数IDに値がポストされていますか? –

答えて

1

nullでないことを確認してください。 valueは、フォームの入力要素のプロパティであり、フォーム自体のプロパティではありません。

だから、今、あなたは$_POST['id']を得ることができる必要がありますラインform.value = data;を削除し、

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

と交換してください。

+0

これは私に解決策を与えましたが、私はそれを私自身で理解しましたが、これは私のやり方でした。 –

2

あなたは小さなタイプミスをしました。それは大きな問題ですが。 PHPでは、$という記号を使って変数を作成します。 PHPスクリプトで

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"); 

は、

<?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のようにアクセス:

obj.idは、あなたがデータを渡す方法がないことを

+0

それは問題ではない、私はあなたを保証することができます。私はそれを打ち込んだだけです。元のファイルに固定されています。ここで解決します –

+0

あなたのコンソールは何を言っていますか? – Akintunde007

+0

コンソールに「id」という正しい名前のオブジェクトが見つからないというメッセージが表示されます。しかし、私は解決策を見つけました。後でそれを掲載する予定です。 –

関連する問題