سؤال

أحاول إرسال اسم: زوج القيمة إلى برنامج نصي PHP باستخدام كائن $ .post في jQuery حيث يكون كل من الاسم والقيمة متغيرات. لقد أرسلت المتغيرات إلى وحدة التحكم في 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 value = $ (this) .val () ؛ var data = type+"="+value ؛

$ .post ('checkemail.php5' ، البيانات ، الدالة (البيانات) {.......

الافضل،

بالضبط ما كنت أبحث عنه فالكون الظلام ، شكرا!

كان من الصعب العثور على هذا الحل ، راجع للشغل. أفترض أن معظم الأشخاص يقومون بتسلسل بيانات النموذج فقط وإرسال ذلك باعتباره POST PARAM ، ولكن في بعض الحالات ، من الجيد استخدام الإقران المتغير- كان المتغير يعمل

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top