jquery $を通過する問題は、パラメーターとして変数をポストします
-
21-09-2019 - |
質問
名前と値の両方が変数であるjQueryの$ .POSTオブジェクトを使用して、名前:値ペアをPHPスクリプトに送信しようとしています。変数をFFのコンソールに送信したので、それらが正しく設定されていることを知っていますが、送信中のヘッダーを見ると、値変数のみが正しく評価されています。名前。これが完全にその機能です:
$(document).ready(function() {
$('#formS form fieldset > input').blur(function() {
if($(this).val()=='' && $(this).prev().is('img')) {
$(this).prev().remove();
return;
}
if((($(this).is('#formS form fieldset > input[id*=mail]')) ||
($(this).is('#formS form fieldset > input[id*=sername]'))) &&
($(this).val()!="")) {
var email_field = $(this);
if(!$(this).prev().is('img')){
$('<img src="" alt="" style="width: 16px; height: 16px;" />').insertBefore(this);
}
var type = ($(this).is('input[id*=sername]'))?'username':'email';
var value = $(this).val();
$.post('checkemail.php5', {type:value}, function(data) {
if(data == "free") {
email_field.prev().attr('src','/images/greentick.png').attr('alt','available');
} else if(data == "taken") {
email_field.prev().attr('src','/images/redcross.png').attr('alt','taken');
} else {
console.log('hmmm'+data);
}
});
}
});
});
したがって、送信されるヘッダーは文字通りの文字列です タイプ, 、そして何でも 価値 に評価します。誰かがアイデアを持っている理由はありますか?
解決
構文{}は、名前がオブジェクトのプロパティになる場所の名前のセットを取得するためです。これは文字通りであり、あなたが見るように変数になることはできません。これを使って:
var params = {};
params[type] = value;
{type:value}の代わりにパラメーションを渡す
他のヒント
あなたの問題が何であるかわからない、それは私にとってそれほど明確ではない。私もPHPの知識はありませんが、このように試してみたいと思うかもしれません。
var type =($(this).is( 'input [id*= sername]'))? 'username': 'email'; var値= $(this).val(); var data = type+"="+value;
$ .post( 'checkemail.php5'、data、function(data){.......
最善、
まさに私がダークファルコンを探していたもの、ありがとう!
ところで、この解決策を見つけるのは困難でした。ほとんどの人はフォームデータをシリアル化してPOST PARAMとして送信していると思いますが、場合によってはVariable-name => Variable-Valueペアリングを使用することは良いことです。変数が機能していました