2015-09-28 2 views
0

Я вижу многочисленные примеры этого, но никто не дает ответа, как изменить «buynow» с php echo. HTLM кодЭхо PHP в Javascript?

<button id="pn4" class="paynow-button" 
     data-business="[email protected]" 
     data-item_name="PayNow Plugin" 
     data-amount="150" 
     data-quantity="1" 
     data-currency_code="USD"> 
     <span class="paynow-label">Click to Buy </span> 
     <span class="paynow-price"><sub>$</sub>150</span> 
</button> 

Js код

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#pn4').paynow({ 
      type: 'buynow', 
      style: 'double', 
      tooltip: 'Click to checkout with PayPal!' 
     }); 
    }); 
</script> 

Я добавил этот код, но не результат.

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#pn4').paynow({ 
      type: '<?php echo $detail['my_name']; ?>', 
      style: 'double', 
      tooltip: 'Click to checkout with PayPal!' 
     }); 
    }); 
</script> 
+0

Каков результирующий сгенерированный HTML? –

+2

Добро пожаловать в SO, ваш вопрос немного не хватает деталей. Как вы определяете, что такое переменная '$ detail'? То, что вы показали, будет работать отлично, но нам нужно знать, как вы получаете эту ценность и что еще вы можете захотеть. –

ответ

0
echo " 
<script> 
    $('.paypal').ClassyPaypal({ 
type: '".$detail."', 
}); 

</script>"; 
?> 

Причина, почему вы должны сделать это, является то, что PHP нагрузки до вашего JavaScript, поэтому вы не можете повторить значение в сценарий, который еще не загружен

__Edited:

Кодируется ваше значение

<?php echo json_encode($detail); ?> 

Использование json_encode() требует:

PHP 5.2.0 or greater 
$detail encoded as UTF-8 (or US-ASCII, of course) 

Поскольку UTF-8 поддерживает полный Unicode, его следует безопасно преобразовывать на лету.

+2

Это функционально ничем не отличается от того, что уже было у пользователя2692541. Значение будет загружено в javascript перед отправкой в ​​браузер, поэтому это не имеет значения. –

+0

Вы правы, я обновлю свой ответ –

0

Кажется, что ваш php возвращает пустое значение. Ваш скрипт должен работать отлично. Вы также можете попробовать использовать AJAX.

попробовать Также это, как этот

"<?php echo $php_var; ?>" 
0

В общем, если ваш веб-сервер поддерживает PHP, собственный пример должен работать. PHP и JS имеют только некоторые отличия в том, как они интерпретируют/печатают строку. Например: если ваша переменная PHP содержит новую строку, эта строка новой строки будет напечатана в вашей строке JavaScript. Но JavaScript не принимает символы новой строки в строке, вам нужно будет их избежать. Кроме того, имейте в виду, что вам также придется избегать одиночных кавычек. Следующий пример будет немного лучше:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#pn4').paynow({ 
      type: '<?php echo str_replace(array("'", "\n"), array("\'", "\\\n"), $detail['my_name']); ?>', 
      style: 'double', 
      tooltip: 'Click to checkout with PayPal!' 
     }); 
    }); 
</script> 

Но еще лучше было бы взять json_encode(), как предложил Ральф. Эта функция преобразует строку PHP в правильную строку JavaScript. Не включайте кавычки в JavaScript. Например:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#pn4').paynow({ 
      type: <?php echo json_encode($detail['my_name']); ?>, 
      style: 'double', 
      tooltip: 'Click to checkout with PayPal!' 
     }); 
    }); 
</script> 

Обязательно проверьте, если $detail['my_name'] является строкой в ​​этом случае. В противном случае он может нарушить код JavaScript для кнопки PayPal!

Смежные вопросы