Как сделать простой вызов JavaScript из функции PHP? - PullRequest
1 голос
/ 12 апреля 2011

У меня есть простая функция PHP, которая вызывается при отправке формы:

function uc_paypal_ec_submit_form($form, &$form_state) {
  $form['actions'] = array('#type' => 'actions');
  $form['actions']['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Submit order'),
  );
  return $form;
}

Мне нужно, чтобы можно было выполнить простой вызов Google Analytics, например:*

Я пробовал несколько вариантов, но ничего не работает.Я не вижу звонка в Google Analytics ...

Как я могу решить эту проблему?

Ответы [ 6 ]

1 голос
/ 13 апреля 2011

Знаете ли вы, что JavaScript работает в браузере клиента, в то время как PHP работает на сервере?

В любом случае, теперь вы делаете.Так что это должно ответить на ваш вопрос.

Просто эхо <script type="text/javascript">yourJsCodeHere</script>".

0 голосов
/ 13 апреля 2011
echo " <script type='text/javascript'>_gaq.push(['_trackPageview', 'virtual/formSubmit']); </script> ";
0 голосов
/ 13 апреля 2011

Короткий и простой ответ: вы не можете выполнить код JavaScript на стороне сервера.Длинный и сложный ответ - вы можете, но он длинный и сложный и включает в себя некоторые серверные скрипты / библиотеки и в лучшем случае немного грязный.

По сути, вы хотите либо вывести этот код на страницу подтверждения / благодарности, на которую пользователь попадает после (оптимально), либо использовать cURL для нанесения удара (этонемного хитрее ... По сути, вам нужно смоделировать запрос img, добавив соответствующую информацию, включая информацию о файлах cookie ... Обратите внимание, что это не "длинный и сложный" метод, упомянутый выше.).

0 голосов
/ 13 апреля 2011

Вы не можете.JavaScript на стороне клиента, а PHP на стороне сервера.

Вы можете заставить браузер вызывать функцию JavaScript:

<?='<script type="text/javascript">jsfunc();<;/script>';?>;
0 голосов
/ 13 апреля 2011

Вам просто нужно вызвать свой код javascript из аргумента onSubmit формы.

<form name="..." action="..." onSubmit="_gaq.push(['_trackPageview', 'virtual/formSubmit']);">
0 голосов
/ 13 апреля 2011

Сделайте так, чтобы ваша функция возвращала вывод и выводила вывод в элементе кода Google <script>, заставит _gaq.push... отключиться.

Вы не можете просто вывести этот JS и ожидать, что онзапустить где-нибудь самому ... или чтобы PHP позвонил в Google.

  • PHP - СТОРОНА СЕРВЕРА
  • JS - СТОРОНА КЛИЕНТА (клиенты браузера запрашивают у Google, а не у вашего сервера)

Итак, как я уже сказал, сделайте вывод JS для функции, которая запускает нагрузку, и все готово.сохраните вывод: $output = "_gaq.push(['_trackPageview', 'virtual/formSubmit']);";

и затем отправьте его куда-нибудь, чтобы запустить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...