通过javascript函数将字符串传递给ajax的麻烦

时间:2015-12-17 15:28:02

标签: javascript php

我遇到了一个函数的问题,我传递了2个参数,其中一个包含字符串“12345.00”,主要问题是在console.log(字符串)上这只返回“12345”。 / p>

有没有办法获得整个字符串?

$data = array(
  array(
    'arg1' => '1', 
    'arg2' => '123'
  ),
  array(
    'arg1' => '2', 
    'arg2' => '12345.00'
  )
);

<button id="openTab">Test</button>

foreach($data as $item){
  <script>                          
    $('#openTab').click(function(e){
      e.preventDefault();
      getValues(<?php echo $item['arg1'](); ?>, <?php echo $item['arg2']; ?>);
    });                         
  </script>
}

function getValues(arg1, arg2){
  console.log(arg2);
  new Ajax.Request("<?php echo $this->getUrl('getValues') ?>", {
    method: 'POST',
    type: 'json',
    parameters: { arg1: arg1, arg2: arg2},
    onComplete: function(transport) {
      var result = JSON.parse(transport.responseText);         
      console.log(result);     
    }
  });
}

1 个答案:

答案 0 :(得分:1)

strtotime

这呈现:

getValues(<?php echo $item['arg1'](); ?>, <?php echo $item['arg2']; ?>);

如果你想要JS字符串,你需要引用它们:

getValues(2, 12345.00);

呈现:

getValues("<?php echo $item['arg1'](); ?>", "<?php echo $item['arg2']; ?>");

这可以通过查看渲染的JS来验证。

您还应该采取防御性编码并假设返回的数据可能包含引号,例如,在将其呈现为JS之前应将其转义为JavaScript。

了解您的文件基本上是模板非常重要。在客户端发生的事情完全取决于它的呈现方式。您可以通过查看源或检查元素来检查呈现,以验证实际传递给浏览器的内容。