如何将变量从javascript发送到PHP

时间:2013-03-05 13:57:30

标签: php javascript

我想知道如何将变量从javascript发送到php,这样我就可以创建一个包含动态行总和的变量。

更具体: 当我在搜索框中搜索时,我想获得行数(1个匹配是1行,2个匹配是2行,依此类推

我试图实现这个:document.getElementById(“i1”)。value = allCells.length;所以我后来可以在php中调用,但我没有工作。

这是我的javascript,就像javascript完美运行一样。

<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 
<script language="javascript" type="text/javascript">  
  $(document).ready(function() 
  {
    $('#search').keyup(function() {
      searchTable($(this).val());
    });
  });
  function searchTable(inputVal) 
  {
    var table = $('.table');
    table.find('tr').each(function(index, row) 
    {
      var allCells = $(row).find('td');
      if (allCells.length > 0) {
        var found = false;
        allCells.each(function(index, td) 
        {
          var regExp = new RegExp(inputVal, 'i');
          if (regExp.test($(td).text())) 
          {
            found = true;
            return false;
            document.getElementById("i1").value = allCells.length;
          }
        });
        if (found == true)
          $(row).show();
        else
          $(row).hide();
      }
    });
  }

  $(function()
  {
    $('#table a').click(function(e) 
    {
      e.preventDefault();
      $('#result').val($(this).closest('tr').find('td:first').text());
    });
  });
</script>

我想在桌面标题中吐出动态的行数。

 <h3>Total: (<?php print_r($_GET["i1"])?>)  </h3>

我希望你能帮助我。

3 个答案:

答案 0 :(得分:2)

你可能从来没有学过javascript和php之间的区别

Javascript是客户端,这意味着一切都由您的本地系统处理。 PHP是服务器端的,这意味着服务器处理所有内容并将其解析为html。

你不能像你一样从javascript发送一个值到普通的PHP。 但是,您可以发送帖子或获取相同的脚本,然后重新加载脚本的一部分

http://api.jquery.com/jQuery.get/

http://api.jquery.com/jQuery.post/

答案 1 :(得分:0)

你不是第一个想要这个的人,而不是第一个被告知你不可能想象的方式。当您浏览到PHP页面时,事情就像这样:

  1. 浏览器向服务器发送HTTP请求
  2. 服务器确定要发送到浏览器的页面
  3. 服务器发现您需要PHP页面
  4. 服务器执行PHP
  5. 服务器将PHP返回的内容发送到浏览器
  6. 浏览器不了解PHP并显示HTML
  7. 浏览器执行Javascript。
  8. 现在重要的一点是浏览器不知道PHP是什么,但可以执行JavaScript,而服务器不知道JavaScript是什么(为简单起见)但可以执行PHP。 底线:两者之间很难沟通因为它们在不同的地方执行。你很可能想要使用AJAX,所以这里有一个超级简单的样本:

    我们要获取的PHP页面:

    <?
        // We're on the server
        // We're going to output something:
        echo "Yay! You can see me!"; // So the browser sees only "Yay! You can see me!" (without quotes).
    ?>
    

    JavaScript(使用jQuery)获取PHP页面:

    $("#anElementID").load("thePHPPageWeWantToFetch.php"); // It's that simple! The element with the ID #anElementID now contains "Yay! You can see me!" (without quotes).
    

答案 2 :(得分:0)

我也建议使用AJAX或其他东西将你的javascript值传递给PHP。 您可以创建一个AJAX调用,添加javascript中的数据,并捕获PHP文件中的数据。

var value = "Jan";
$.ajax({
        url: "/form.php",
        type: "post",
        data: "name=" + value
    });
您可以在PHP文件中

<?php
$catchedName = $_POST["name"];
?>