繁体   English   中英

如何将JavaScript从jQuery [每个]循环内存储到php变量

[英]How can I store JavaScript from within a jQuery [each] loop to a php variable

我[成功地]将jQuery片段存储在php变量中,其中的值由php脚本填充,如下所示:

...//collect necessary variables

$script = "
  <script type='text/javascript'>
    (function($) {
      analytics.identity('" . $cid . "', {
        created: '" . $created . "',
        email: '" . $email . "',
        ...: '" . $whatever . "'
      });
    })(jQuery);
  </script>
";

return $script;

我还可以[成功]获取页面上所有表单的name属性,如下所示:

 <script type='text/javascript'>
    (function($) {
      $('form').each(function() {
        var formname = $( this ).attr('name');
        if(formname !== undefined) {
          console.log(index + ':' + encodeURIComponent(formname));
        };
      });
    })(Jquery);
</script>

我遇到的问题(也许很明显)是缺乏使用javascript的经验,他们不知道如何将两者结合在一起,因此我的$script看起来像这样:

$script = "
  <script type='text/javascript'>
    (function($) {
      analytics.identity('" . $cid . "', {
        created: '" . $created . "',
        email: '" . $email . "',
        ...: '" . $whatever . "'
      });
      analytics.trackForm($('form[name="formname1"]'),'Form Submitted', {
        lead: formname
      });
      analytics.trackForm($('form[name="formname2"]'),'Form Submitted', {
        lead: formname
      });
      ...//(n) number of form names
    })(jQuery);
  </script>
";

最新的脚本直接添加到页脚中:

<script type="text/javascript">
  (function($) {
   $('form').each(function() {
    var formname = $(this).attr('name');
    if( formname !== undefined) {
      console.log( formname );
      var forms = $('form[name="' + formname + '"]');
      var trackforms = analytics.trackForm(forms, 'Submitted Optin Form', { leadmagnet: "'" + formname + '"' });
      return trackforms;
    }
   });
  })(jQuery);
</script>

Console.log在页面上当前输出一种形式,如果我添加另一种形式,它也可以正确地输出,但是其余代码只是按原样编写,我没有得到。

再次感谢。

document.write(...)将字符串添加到文档中而不是脚本中。

您需要返回所需的功能。

$script = "
  <script type='text/javascript'>
    (function($) {
      analytics.identify('" . $ifs_id . "', {
        created: '" . $created . "',
        email: '" . $email . "',
        firstName: '" . $first_name . "',
        leadsource: '" . $lead_source ."'
      });
      $('form').each(function( index ) {
        var formname = $( this ).attr('name');
        if( formname !== undefined) {
          //console.log( index + ':' + formname );
          var forms = $('form[name=\"+formname+\"]);
          var trackform = analytics.trackForm(forms, 'Submitted Opt In Form', {
             leadmagnet : $( this ).attr('name')
           });
          return trackform;

        }
      });
    })(jQuery);
   </script>
";

return $script;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM