2012-04-14 1 views
0

GoogleイベントトラッキングをWordpressプラグインに追加しようとしています。このプラグインでsubmitボタンのコードは次のとおりです。'構文エラー、予期しないT_CONSTANT_ENCAPSED_STRING' WordpressプラグインのボタンにGoogleイベントトラッキングを追加する

{ 
     return "<input type=\"submit\" ". 
       "name=\"".fm_form_submit_btn_name()."\" ". 
       "id=\"".fm_form_submit_btn_id()."\" ". 
       "class=\"submit\" ". 
       "value=\"".fm_form_submit_btn_text()."\" ". 
       "onclick=\"".fm_form_submit_btn_script()."\" ". 
       " />\n"; 
    } 

私は上記のブロックにコードonclick=_gaq.push(['_trackEvent', 'Form', 'Submit', 'Apply'])を追跡グーグル・アナリティクスを追加しようと、最終的にフォームのタイトルを返しfm_form_the_title()'Apply'を交換しています。

問題:トラッキングコードブロックを挿入するときに使用する引用符の配置に関係なく、「構文エラー、予期しないT_CONSTANT_ENCAPSED_STRING」またはサイト全体をシャットダウンする「T_STRING」というエラーが発生しました。

編集:上のコードブロックは機能し、単純化する必要はなく、はるかに大きなプロジェクトの一部です。私の質問は、onclick=_gaq.push(['_trackEvent', 'Form', 'Submit', 'Apply'])を追加して、最終的に'Apply'fm_form_the_title()に置き換え、私のウェブサイトを壊さないことです。

答えて

1

どのように関数呼び出しに入れて引用符をエスケープしているので、なぜ単一引用符を使用しないで、

return '<input type="submit" '. 
'name=\"".fm_form_submit_btn_name()."\" ". 
'id="'.fm_form_submit_btn_id().'"'. 
'class="submit"'. 
'value=\"".fm_form_submit_btn_text().'"'. 
'onclick="'.fm_form_submit_btn_script().'"'. 
' />\n'; 
+0

これは他のものを破壊する可能性があり、私が達成しようとしていることをしないためです。私はちょうど上記のリンクにGoogle Analyticsのイベントの追跡コードを追加したい。コードは上記のように動作します。イベントトラッキングコードを追加すると、それが中断されます。私はonclick = _gaq.push(['_ trackEvent'、 'Form'、 'Submit'、 'Apply']) 'を追加したいと思います。 –

1

でこれをsimplyfingは?

return '<input type="submit" '. 
      'name="'.fm_form_submit_btn_name().'" '. 
      'id="'.fm_form_submit_btn_id().'" '. 
      'class="submit" '. 
      'value="'.fm_form_submit_btn_text().'" '. 
      'onclick="'.fm_form_submit_btn_script().'" '. 
      ' /> 
     '; 
+0

編集:上のコードブロックは機能し、単純化する必要はなく、はるかに大きなプロジェクトの一部です。私の質問は、onclick = _gaq.push(['_ trackEvent'、 'Form'、 'Submit'、 'Apply'])を追加し、最終的にfm_form_the_title()で 'Apply'を置き換え、私のウェブサイトを破壊しない方法です。 –

0

は、それが返された後、これを使用しているコードは、括弧、ブラケット、または単一引用符のいずれかでエラーをスローすることができても、次が有効である

return '<input type="submit" '. 
'name=\"".fm_form_submit_btn_name(). '" '. 
'id="'.fm_form_submit_btn_id().'" '. 
'class="submit" ". 
'value="'.fm_form_submit_btn_text().'" '. 
'onclick="'.fm_form_submit_btn_script(). '" '. 
' />'; 
3

を試してみてください。これがうまくいかない場合は、一度返されると、これが使われている場所を見て、それに応じて特殊文字をエスケープしてください。

function yourfunc() { 

    return "<input type=\"submit\" ". 
    "name=\"".fm_form_submit_btn_name()."\" ". 
    "id=\"".fm_form_submit_btn_id()."\" ". 
    "class=\"submit\" ". 
    "value=\"".fm_form_submit_btn_text()."\" ". 
    "onclick=\"_gaq.push(['_trackEvent', 'Form',". 
    "'Submit', '".fm_form_the_title()."']);". 
    fm_form_submit_btn_script()."\"/>\n"; 

} 

は_gaq.pushメソッドに渡される配列内の単一引用符を使用せずに、それを試してみてください。

私は次の人に同意する必要がありますが、以下は可読性と今後のサポートの両方に最適です。

function yourfunc() { 

    return '<input type="submit" '. 
    'name="'.fm_form_submit_btn_name().'" '. 
    'id="'.fm_form_submit_btn_id().'" '. 
    'class="submit" '. 
    'value="'.fm_form_submit_btn_text().'" '. 
    'onclick="_gaq.push(["_trackEvent", "Form",'. 
    '"Submit", "'.fm_form_the_title().'"]); '. 
    fm_form_submit_btn_script().'"/>\n'; 

} 
+0

これはエラーを 'syntax error、unexpected T_CONSTANT_ENCAPSED_STRING'から' syntax error、unexpected T_STRING'に変更します。これは 'onclick = \" "。fm_form_submit_btn_script()。\" "を除外します。 –

+0

Nevermind。間違った場所に引用がありました。 'syntax error、unexpected T_CONSTANT_ENCAPSED_STRING'に戻り、onclick = \" "。fm_form_submit_btn_script()。\" "。 –

+0

をまだ逃しています。私が上に掲げたものを試してみてください。 – TriangleTodd

関連する問題