【问题标题】:How to call a Javascript passing a variable from PHP如何调用从 PHP 传递变量的 Javascript
【发布时间】:2013-05-30 10:12:21
【问题描述】:

我正在尝试从 php 代码调用 javascript 函数,它将从输入表单接收 php 变量。一旦 Javascript 函数接收到这个变量或值,它将调用一个 php(search.php 文件)来进行查询和其他工作。

PHP 代码:

<?
I need to call search function in php passing the $_POST Global variable value :
something like this: <script> search($_POST) ; </script>
?>

Javascript 文件名:call_search.js:

function search($_POST or variable) {
    var search_query = $(this).val();

    $.post('search.php', {search_query : search_query}, function(searchq) {
        $('#search_query').html(searchq);
    });
}

注意:search.php 是另一个执行 mysql 查询和其他工作的 php 文件,它发回结果:MySQL query back to Javascript function。

任何帮助..拜托.!!非常感谢。

【问题讨论】:

    标签: php javascript parsing variables


    【解决方案1】:

    这样的事情应该可以工作:

    <script type="text/javascript">
       search(<?php echo $_POST; ?>);
    </script>
    

    但是,请注意,这可能是传递变量的不好方法 - 尝试查看 Javascript 框架并通过后端的 RESTful API 检索您需要的任何信息。

    【讨论】:

      【解决方案2】:

      对于 JS 参数,您可以发送 Object.. 在 PHP 中使用 json_encode

      echo '<script>';
      echo 'search('.json_encode($_POST).')';
      echo '</script>';
      

      在 JS 中:

      function search(obj) {
          console.log(obj);
      }
      

      【讨论】:

        【解决方案3】:

        你做错了,或者我不明白你到底在做什么。

        给搜索字段一个 id (searchInput) 并在 jQuery 中获取值并从那里将其发送到 php 以接收响应。

        function search() { 
        var search_query = $('#searchInput').val();
        
        $.post('search.php', {search_query : search_query}, function(searchq) {
            $('#search_query').html(searchq);
        });
        
        }
        

        希望这会有所帮助。 祝年轻的学徒好运,愿源与你同在。

        【讨论】:

        • 我无法让它工作,我已经尝试了论坛中的每个建议。如何将 id(search Input) 从 index.php 传递到 file2.php 。我知道 $_GET 和 $POST,但我不知道如何告诉 file2.php 检查搜索字段 id 中的值:(searchinput)
        • 你把事情搞砸了!对你有好处的是 http 协议非常简单。它是这样工作的:OneClient 请求 -> 一个服务器响应。
        • 你把事情搞砸了!您在此处看到的(Javascript)代码在您的浏览器(客户端)中运行,它可以在您的 HTML 中查找一个值并向您可以处理的 search.php 中的服务器(此处:向文件 search.php)提交一个 POST 请求带有 。您不需要“告诉 file2 检查搜索字段中的值”,事实上,服务器不能这样做,因为您的输入字段位于您的浏览器中,并且必须以一种或另一种方式提交到 php 文件,以便待处理。
        【解决方案4】:

        如果您将 java 脚本添加到您的代码中

        echo "<script src=\"call_search.js\"></script>";
        

        并将其作为一个事件在您的 php 中回显,它将起作用:

        echo "<body onLoad=\"search($param)\">";
        

        echo "<script> search($param) </script>";
        

        它会在页面加载时加载。

        【讨论】:

          【解决方案5】:

          如果我理解你的问题,表单必须有一个简单的按钮而不是提交按钮,并且只需使用serialize() 来通过 id 获取所有表单数据

          $.post('search.php', $('#IDform').serialize())

          你会发现更多细节here

          【讨论】:

            【解决方案6】:

            您也可以查看SpiderMonkey。它是一个用于 PHP 的 javascript 引擎,可以让您从 Javascript 访问 PHP 变量和类。不过,我同意杰伦的观点。从长远来看,它可能不是最好的解决方案。

            【讨论】:

              猜你喜欢
              • 2015-05-31
              • 2010-11-02
              • 1970-01-01
              • 2019-07-07
              • 2013-08-18
              • 2020-01-11
              • 2012-10-07
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多