2016-12-31 10 views
0

私は過去10日間、この問題をいくつかの問題を解決するために費やしましたが、まだ固執しています。私はJavascriptの値を取るオンライン予算システムを作って、Ajax経由でPHPに送り、そこでPHPにデータベースに送られます。ここに私のjavascriptコードがありますAjaxがデータを送信していますが、Phpファイルがそれを受信して​​いません

$.ajax({ 
    url: 'yup.php', 
    type:'post', 
    data:{ 
      'Sal': Sal, 
      'TaxReb': TaxReb, 
      'RetInv': RetInv, 
      'IntSave': IntSave, 
      'Pen': Pen, 
      'Dividends': Dividends, 
      'Wages':Wages, 
      'Loans':Loans, 
      'Benefits':Benefits, 
      'IncOther': IncOther, 
      'Tax': Tax , 
      'Groc': Groc , 
      'Take':Take , 
      'Rent': Rent , 
      'Elec': Elec , 
      'Trans': Trans , 
      'Mort': Mort , 
      'LoanPay':LoanPay , 
      'Goods': Goods , 
      'ExpOther': ExpOther , 
      'TotalInc':TotalInc , 
      'TotalExp': TotalExp , 
      'NetInc':NetInc 
    }, 

    success: function(data){ 
     alert(data); 
     window.location.href='yup.php'; 
    } 
}); 

値はJscriptファイルで動作している整数です。アラートは私にこのメッセージを表示します。

Array(
[Sal] => 33245 
[TaxReb] => 324523 
[RetInv] => 3245 
[IntSave] => 2345 
[Pen] => 3524 
[Dividends] => 5342 
[Wages] => 35425342 
[Loans] => 5432 
[Benefits] => 254325 
[IncOther] => 4352 
[Tax] => 34 
[Groc] => 3434 
[Take] => 34 
[Rent] => 34 
[Elec] => 34 
[Trans] => 34 
[Mort] => 34 
[LoanPay] => 34 
[Goods] => 34 
[ExpOther] => 34 
[TotalInc] => 36061675 
[TotalExp] => 3740 
[NetInc] => 36057935 
)` 

私のPHPコードはこれです: アレイ() とするとき、私はそれが与える変数のコメントを解除:

<?php header(' charset=utf-8'); 
print_r($_POST) 
//$Sal=$_POST['Sal']; 
//echo $Sal; 

は、しかし、私のPHPページにそれは私にこれを提供します私のエラー:

Notice: Undefined index: Sal in C:\xampp\htdocs\example\yup.php on line 2

実際の変数を取得しようとしたとき、私はprint_rを削除しました。 サーバリクエストメソッドを使用すると、投稿と表示されますが、phpページはと表示されます。と表示されます。これは問題の一部であるかもしれませんが、私はそれを修正する方法を知らず、このウェブサイトや他のウェブサイトで見た他のページも修正していません。すべての助けに感謝します。

+0

パスのURL: 'yup.php'は正しいですか?そこに完全なパスを使ってみましたか? – Yeikel

+2

リダイレクトはすべてのポストデータなしで 'yup.php'の新しいインスタンスを初期化します。あなたはこれを全く必要とせず、これをフォームとして提出したい、あるいはセッション変数 – charlietfl

+0

にajaxデータを格納する必要があるように思えます。POSTデータを使ってAJAX要求を 'yup.php 'なぜ、リクエストの直後に' yup.php'(データなしのGETリクエスト)をリダイレクトするのですか? –

答えて

0

yup.phpという2つの別々のリクエストを行っています。 AJAXを使用してPOST要求があり、success()機能でyup.phpにユーザーをリダイレクトすると、GET要求が行われます。ページに表示するためにユーザーに情報を送り返しているGET要求は、AJAX要求から情報を受信しません。なぜなら、サーバーにGET要求の情報を送信しなかったからです。以前にデータを受信したyup.phpへの別のPOSTリクエストを作成し、スクリプトの実行に進みました(つまり、情報をプリントアウトしています)。

あなたの目標は、AJAXリクエストを送信した後にサーバーから何らかの応答を提示する場合は、success()関数でdata引数を使用する必要があります。 alert()で行ったことは、データを表示するための1つの方法ですが、不満足なことです。 JavaScriptを使用して、そのデータを現在のページのどこかに挿入することをお勧めします。

2つの別々のリクエストをyup.phpに作成し、そのうちの1つのみがAJAXを使用して送信したデータを受信することが重要です。

+0

ありがとう、私はこれが事実であるとは思わなかった。 – Awtthem

関連する問題