私は突然非常に奇妙な "バグ"を得ました。これまでは、このスクリプトは魅力的に機能していました。しかし、突然、formData
変数は、それが存在しないかのようにjQuery.ajax
に渡されません。jQuery.ajaxでの不思議な動作
私がalert
のデータを表示すると、それはすべて機能します。しかし、私は警告を削除するとすぐに、formData
インデックスが存在しないことをPHPスクリプトが教えてくれます。
私はこれが発生したり、それを解決する方法をどのように無知だ: -/
これは私の開発サーバ上ではなく、本番サーバー上で正常に動作します。
jQuery('#btn_saveForm').live('click', function() {
var instance = 'update';
var brand_id = jQuery('#itemID').val();
// Get form data
var form_data = jQuery("#data_form").serialize();
// alert(form_data); //If I uncomment this, the script works...
//Process form data
jQuery.ajax({
url: siteURL +"/wp-content/themes/my_theme/include/jquery.php",
data: {
instance : instance,
formData : form_data,
brandID : brand_id
},
success: (function(feedback) {
showFeedback(feedback);
}),
dataType: 'json'
});
});
これは野生の推測ですが、デベロッパーでは動作していますが、配布されていないと、サーバ上でMIMEタイプを設定する際に問題が発生することを示唆しています。 fiddlerやFirebugのNETタブで1つかもしれません。エラーを追加してみてください:function(e){}もブロックし、サーバー上のeに含まれているものを参照してください(もう一度、firebug経由で - VSは利用できません) – SpaceBison
@SpaceBison - ありがとう。 FFのNETタブをチェックすると、実際にすべてのデータが送信されていることがわかります!しかし、呼び出されているPHPコードで 'print_r($ _ REQUEST)'を実行すると、 'instance'と' brandID'だけが表示されます。 – Steven
@SpaceBison、PHPファイルが '$ _REQUEST ['formData']'を見つけられないので何も返されません。 – Steven