2

我在php中有以下代码:

<?php
$apples = 123123;
echo "<td>
         <input type='button' onclick='confirmation($apples)' value='ac/in'>
      </td>";

echo('<script type="text/javascript">
           function confirmation(test) {
              var answer = confirm("Are you sure?")
              if (answer){
                  alert(test);
                  $.get("/index.php?f=func_name_to_call", 
                  {name: "John", hobby: "Programming"}, function(data) {});
              }
           }
</script>');
?>

如果 $apples 是一个数字,那么参数会正确传递;但是,当它是一个字符串时,函数确认()被破坏。有任何想法吗?提前致谢。

4

3 回答 3

7

如果您希望它将参数作为字符串传递,请使用以下编辑过的代码

echo "<td><input type='button' onclick='confirmation(\"$apples\")' value='ac/in'></td>";

\用于转义双引号,它将被视为字符串。

于 2013-01-23T05:20:34.817 回答
2

是的,您必须在调用确认函数时使用转义字符\“\”,因为您在整数类型参数中传递整数,该参数没有双引号。因此它将字符串转换为整数......

于 2013-01-23T05:34:00.803 回答
1
<?php
$apples = 123123;
?>
<td>
    <input type='button' onclick='confirmation(<?php echo $apples?>)' value='ac/in'>
</td>

<script type="text/javascript">
    function confirmation(test) {
        var answer = confirm("Are you sure?")
        if (answer){
            alert(test);
            $.get("/index.php?f=func_name_to_call", 
            {name: "John", hobby: "Programming"}, function(data) {});
        }
    }
</script>

你会遇到将所有这些转换成的麻烦,'因为"你回应他们php,只是一个建议不要echo他们,使用html标记,只是逃避你的php

于 2013-01-23T05:54:58.857 回答