2012-07-14 162 views
0

我实际上需要获取HTML表格行的数量(<tr>)。使用JavaScript我很容易得到表行的数量,但现在我真的想在一个我无法做到的PHP变量中使用该数量。请请帮助我。如何将JavaScript变量值转换为PHP变量

+0

JavaScript运行在浏览器中,在客户端上。 PHP在服务器上运行。我不确定你想要达到什么。您可以使用AJAX将JavaScript数据发送到服务器。 – 2012-07-14 09:09:38

+0

我想将html表的值存储到sql数据库 – 2012-07-14 09:10:54

+0

阅读关于AJAX。您需要将您的数据发送到服务器上的PHP脚本。您不能将JavaScript变量“转换”为PHP变量。 – 2012-07-14 09:11:39

回答

3

您的javascript是在浏览器中。你的PHP在服务器上。为了得到这个数到PHP服务器上,您有几种选择:

  1. 可以使一个AJAX调用服务器并从浏览器到服务器通过表行数。
  2. 如果您正在请求一个新页面,您可以在URL中使用URL参数?rowCnt=49对URL中的行数进行编码,该URL参数将在URL中解析出您的PHP中的URL。
  3. 如果您只是直接请求将加载新页面的服务器,那么您也可以创建一个Post并发送包含该帖子的数据(类似于前一个选项,它是GET而不是POST)。
  4. 如果行数恰好在您的PHP最初由服务器生成的HTML中,那么您可以使用一些服务器端逻辑来计算rowcnt使用的是与第一个生成页面相同的逻辑。
+0

给我发送数据库之间连接的ajax代码或参考链接 – 2012-07-14 09:18:46

+1

@ user1525293 - 这不是这个网站的工作原理。我们不只是给你发送代码。我建议你使用Google'ajax'并自己做一些阅读,然后在有些事情你不明白的地方问一些更具体的问题。有数百万页的网页,因为它是一个广泛使用的网络功能。如果你使用一个为你做一些gruntwork的库(比如jQuery或许多其他库),那么使用它是最简单的。 – jfriend00 2012-07-14 09:22:25

+1

太糟糕的评论不能被低估。 (参考OP的评论) – Mahn 2012-07-14 09:24:11

0

我认为你正在尝试读取PHP中的行数。因此,您可能想尝试使用输入字段

添加这HTML

<input type="hidden" id="rowCount"/> 

在JS代码

<script> 
var objInputFieldRowCount = docuement.getElemendbyId("rowCount"); 
var jsRowCount = table.getElementsByTagName("TR").length; 
objInputFieldRowCount.value = jsRowCount; 
</script> 
+0

不工作,因为我打电话像这样$ hidden = $ _POST ['hidden']; – 2012-07-14 09:40:46

+0

尝试这样做$ rowCount = $ _POST ['rowCount']; – user961954 2012-07-16 16:14:12

0

我有包括一个简单的对象,它允许您将数据发送到一个PHP脚本。同步的POST使其保持简单。我还包括一个简单的PHP脚本,将读取数据。

var phpSend = phpSend || 
{ 
    sent: false, 
    xmlhttp: null, 
    xmlhttpstatus:null , 


    // You would call this function when you need to send your data 
    sendInfo: function() 
    { 

      // Your Data 
      var tableData = "&tableRowCount=" + yourTableRowCount ; 

      // The url where the php file is situated 
      var httpstring = 'http://www.mywebsite.com/php/table.php' ; 


      phpSend.ContactXMLHttpRequest(httpstring,tableData) ; 


      // Check to see if http request for table was OK 
      if(phpSend.xmlhttpstatus == true) 
      { 
       // Do something here 

      } 


    }, 

    ContactXMLHttpRequest: function(url,data) 
    { 
     if (phpSend.xmlhttp) 
     { 
      phpSend.xmlhttp.onreadystatechange=phpSend.stateChanged; 
      phpSend.xmlhttp.open("POST",url,false); 
      phpSend.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
      phpSend.xmlhttp.send(data); 
     } 
    }, 

    stateChanged: function() 
    { 
     if(phpSend.xmlhttp.readyState==4) 
     { 
      if (phpSend.xmlhttp.status==200) 
      { 
       phpSend.xmlhttpstatus = true ; 
      } 
      else 
      { 
        phpSend.xmlhttpstatus = false ; 
      } 
     } 
    }, 


    InitXMLHttpRequest: function() 
    { 
     if (window.XMLHttpRequest) 
     { 
      // code for IE7+, Firefox, Chrome, Opera, Safari 
      return new XMLHttpRequest(); 
     } 

     if (window.ActiveXObject) 
     { 
      // code for IE6, IE5 
      return new ActiveXObject("Microsoft.XMLHTTP"); 
     } 

     alert ('Your browser does not support XMLHTTP!'); 

     return null; 
    }   

} ; 

//----------------------------------------------------------------------------------------------------------------------- 
// 
// Run on load 
// 
//----------------------------------------------------------------------------------------------------------------------- 
(function() 
{ 
    phpSend.xmlhttp=phpSend.InitXMLHttpRequest(); 

})() ; 






//----------------------------------------------------------------------------------------------------------------------- 
// 
// PHP code that will be sitting on your server (for this example, 'http://www.mywebsite.com/php' and called 'table.php') 
// 
//----------------------------------------------------------------------------------------------------------------------- 

<?php 
     // Pick up the count and do what you need to do 
     $count = $_POST["tableRowCount"]; 
?> 
3

这将转换的js变量到PHP变量和PHP变量js的可变

<script> 
function jstophp(){ 


var javavar=document.getElementById("text").value; 

document.getElementById("rslt").innerHTML="<?php 
$phpvar='"+javavar+"'; 
echo $phpvar;?>"; 
} 

function phptojs(){ 

var javavar2 = "<?php 

$phpvar2="I am php variable value"; 
echo $phpvar2; 

?>"; 
alert(javavar2); 
} 

</script> 
<body> 
<div id="rslt"> 
</div> 


<input type="text" id="text" /> 
<button onClick="jstophp()" >Convert js to php</button> 
<button onClick="phptojs()">Convert php to js</button> 

PHP variable will appear here: 
<div id="rslt2"> 
</div> 

</body> 

演示:http://ibence.com/new.php

+0

如果我只想让jstophp()返回一个PHP变量,然后可以在我的HTML代码中使用该怎么办?我怎么做 ? – 2015-02-09 08:30:45

0

最佳实施例的JavaScript值转换为PHP:

的JavaScript

<script type="text/javascript"> 
    var ja =50; 
</script> 

PHP

<?php 
    $dummy = "<script>document.write(ja)</script>"; 
    echo $dummy; 
?>