2016-10-04 34 views
0

私は混乱しています。私は、PHP関数に投稿するJavaScript関数を持っています。 PHPはmPickerの "未定義インデックス"と言っています。しかし、var_dumpと同じ関数内にmPickerと表示されていれば明らかです。同じ関数内のvar_dumpがデータを表示していても、ポスト関数はPHP関数では機能しません

console.log

私はまた、フォームデータがシリアル化されたことを確認するJavaScriptでのアラートクライアント側を走ってきた、そしてそれはあまりにもmPicke rは確かに価値があることを示しています。しかし、PHPのこの行は次のエラーを返します:

$es=$_POST["mPicker"]; 

これはあなたのためにちょうど短い手です。より長いバージョンのコードは、SQLインジェクションのテストを行います。

そしてxdebugの中のエラー:

php error in xdebug

JavaScriptコード:PHPの関数コードの

$.post("./php/adates.php", { atype: apttype, data: $("#apptForm").serialize() }) 
.done(function(data) { 
    alert(data); 
}); 

そして、もっと:

if (isset($_POST["atype"]) && !empty($_POST["atype"])) { 
    $typ = test_input($_POST['atype'], $con); 
} else { 
    echo "error ln 6: typ is undefined."; 
} 

$es=$_POST["mPicker"]; 
echo $es; 
exit; 

test_input機能IですSQLインジェクションのテストとjuテストのためのstは、mPickerのポストで一時的に省略しました。ご覧のとおり、$_POST["atype"]行はエラーをエスケープし、PHP関数で完全に解決されています。私は疲れていると知っている何か愚かなものを逃す必要があります。助け、誰でも!

+0

初めてページが読み込まれると、$ _POST ['mpicker']は設定されません。エラーまたは警告が表示されます。あなたがatypeをテストするのと同じ方法でmPickerをテストします。 – user2182349

+4

「atype」と「データ」という2つのフィールドを正確に投稿しているようです。 – nnnnnn

+0

'!empty'で十分で、' isset'は必要ありません。 – chris85

答えて

1

代わりに「ポスト」

$.ajax({ 
    type: 'POST', 
    url: url, 
    data: data, 
    dataType: "html", 
    success: function(html){ 
    console.log(html) 
    } 

}); 

、その後、PHPで「エコー」または「var_dunmp」を使用し、あなたがウルのデータを見ることができ、「HTML」にデータ型を設定するのjQueryの「AJAX」を使用してみてくださいコンソール

+0

申し訳ありませんが、 "var_dump"ではなく "var_dunmp" –

+0

私は同じ結果でajaxを試みました。しかし、問題は私が2つの別々の変数(シリアル化されたフォームデータである)を送る方法であることがわかりました。だから、私はこの行をajaxの呼び出しの前に追加しました: 'var data = "atype =" + apttype + "&" + $( "#apptForm")serialize(); ' これで動作します。ありがとう。 – jazcam

+0

さて、私はミニ書式を台無しにしました。ごめんなさい。 – jazcam

関連する問題