【问题标题】:Javascript variable cannot return as int when pass to php variable传递给 php 变量时,Javascript 变量不能以 int 形式返回
【发布时间】:2015-02-05 07:47:09
【问题描述】:

谁知道请帮忙!

<script type="text/javascript" language="javascript">

var a = 3;

document.write("<?php funct1('"+a+"') ?>");

</script>

<?php 
function funct1($param){
$param = preg_replace('/\s+/', ' ', $param);
echo intval($param);
}
?>

我曾经以这种方式将 js 变量传递给同一页面中的 php,它可以工作,但我希望该变量 : ($param from a) 将其值作为整数返回。每当我使用 (int)$param 或 intval($param) 时它返回 0。尝试preg_replace 替换空间,它仍然无法解决。

感谢您的帮助。

【问题讨论】:

    标签: javascript php variables int


    【解决方案1】:

    您根本无法对 PHP 中的 Javascript 变量执行任何操作。只需尝试添加 1 并返回 结果,您将得到 0。即使您返回 $param,您也会看到:(按 Ctrl+U)

    var a = 3;
    
    document.write(""+a+"");
    

    返回值本身并且没有发生 PHP 代码!您需要通过ajax拨打电话

    【讨论】:

    • 我使用 PHP 变量,因为它是用于 sql 语句的,thz
    【解决方案2】:

    您在 JavaScript 中定义了变量,并希望在 PHP 中使用它来传递回 JavaScript document.write

    这是错误的。那样不行。

    如果您需要将数据从 JavaScript 传递到 PHP,您可以通过 ajax 连接到 php。或者,如果您想将数据从 PHP 传递到 JavaScript,您可以这样做

    <?php $data = 'hello world' ?>
    <script>
    var data_from_php = <?php echo json_encode($data) ?>;
    alert(data_from_php);
    </script>
    

    PHP 解释器完成执行后,您会得到:

    <script>
    var data_from_php = "hello world";
    alert(data_from_php);
    </script>
    

    我无法用两个词解释 ajax 你可以阅读这个答案:https://stackoverflow.com/a/6009208/1946607

    【讨论】:

    • 请您扩展您的答案,以便 OP 知道它不起作用的原因,以及可能的替代方法吗? AJAX 是一个提示
    【解决方案3】:

    你不能像你的代码那样使用 javascript 和 php。

    当客户端请求一个页面时;之后解释的第一个 php 代码,解释的代码(html 文本)发送客户端浏览器与其他 html 和 javascript 文本。

    您必须使用 ajax 将 javascript 值发送到另一个 php 文件。

    最好的问候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-07
      • 2014-01-11
      • 2011-06-12
      • 1970-01-01
      • 2013-10-11
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多