在PHP函数上使用Javascript数组,无论是在同一文件上还是在其他函数上

在PHP函数上使用Javascript数组,无论是在同一文件上还是在其他函数上,javascript,php,jquery,arrays,ajax,Javascript,Php,Jquery,Arrays,Ajax,我知道这个问题已经被问了很多次了,但我仍然没有找到我所面临的具体问题的答案。我正在创建一个网页,每当用户单击某个特定按钮时,我都希望该网页从php函数上动态创建的表中获取数据。因为PHP没有内置函数来实现这一点,至少据我所知,我决定使用Javascript将表数据转换为带有JSON元素的am数组。我想通过以下方法实现这一点: function getTableData(){ var array = []; var headers = [];

我知道这个问题已经被问了很多次了,但我仍然没有找到我所面临的具体问题的答案。我正在创建一个网页,每当用户单击某个特定按钮时,我都希望该网页从php函数上动态创建的表中获取数据。因为PHP没有内置函数来实现这一点,至少据我所知,我决定使用Javascript将表数据转换为带有JSON元素的am数组。我想通过以下方法实现这一点:

function getTableData(){
            var array = [];
            var headers = [];
            $('#tablaListado th').each(function(index, item) {
                headers[index] = $(item).html();
            });
            $('#tablaListado tr').has('td').each(function() {
                var arrayItem = {};
                $('td', $(this)).each(function(index, item) {
                    arrayItem[headers[index]] = $(item).html();
                });
                array.push(arrayItem);
            });

            actualizarCostos(array);
        }
我在另一个函数中使用此数据将其解析为PHP函数:

function actualizarCostos(array){
            if(array.constructor === Array){
                for(var i = 0; i < array.length ; i++){
                    <?php updateCosts(JSON.stringify(array[i]))?>
                }
            }else{
                alert("Input must be array");
            }
        }
costos函数(数组){
if(array.constructor==数组){
对于(var i=0;i
我知道上面的方法不是正确的方法,我也读了一些关于AJAX的知识。我的问题是:有没有一种方法可以在同一个文件上调用函数?如果没有,是否有更简单的方法在另一个PHP文件上使用AJAX,该文件将具有我需要的功能以及其他文件


谢谢大家!

这个问题的答案是:不,不能在PHP中使用Javascript中的变量。您可以使用PHP生成有效的Javascript代码,但反过来不行。原因是PHP在服务器端处理,而Javascript在客户端(浏览器)处理

注意:您也可以使用Node在服务器端处理Javascript,但您已经在使用PHP了。如何在NodeJs中使用服务器端javascript超出了问题的范围


现在,您可以使用PHP创建该表,而不必使用JS。我假设您的数据是数组格式的,所以查看PHP循环,如
foreach
。然后通过回显(参见
echo(“”)
)表标记(table、thead、tbody、td、tr等)来构建一个表。

问题的答案是:不。不能在PHP中使用Javascript中的变量。您可以使用PHP生成有效的Javascript代码,但反过来不行。原因是PHP在服务器端处理,而Javascript在客户端(浏览器)处理

注意:您也可以使用Node在服务器端处理Javascript,但您已经在使用PHP了。如何在NodeJs中使用服务器端javascript超出了问题的范围


现在,您可以使用PHP创建该表,而不必使用JS。我假设您的数据是数组格式的,所以查看PHP循环,如
foreach
。然后通过回显(参见
echo(“”)
)表标记(table、thead、tbody、td、tr等)来构建一个表。

在PHP中不能使用Javascript中的变量

因为

Javascript(客户端)和PHP(服务器端)

因此,在当前环境下,您可以做如下操作

客户端

function actualizarCostos(array){
            if(array.constructor === Array){
               // Here you need ajax

              $.post('http://myhost.mydomain.com/update_cost.php',
                     { table_data : array }, function(response){
                              // do something after getting response
                   });
            }else{
                alert("Input must be array");
            }
        }
服务器端(更新\u cost.php)


不能在PHP中使用Javascript中的变量

因为

Javascript(客户端)和PHP(服务器端)

因此,在当前环境下,您可以做如下操作

客户端

function actualizarCostos(array){
            if(array.constructor === Array){
               // Here you need ajax

              $.post('http://myhost.mydomain.com/update_cost.php',
                     { table_data : array }, function(response){
                              // do something after getting response
                   });
            }else{
                alert("Input must be array");
            }
        }
服务器端(更新\u cost.php)



恐怕情况就是这样:(好吧,如果是这样的话,我知道我说过据我所知PHP不可能获取HTML表数据。我的假设是错误的吗?作为对您编辑的回应。我的数据是从MySQL查询创建的,然后以HTML格式放入表中。为了能够构建HTML表,您需要数据。找出数据的来源(服务器端)。然后通过调用生成该数据的方法重新使用该数据,或者查询数据库以提取所需的数据。恐怕情况就是这样:(好吧,如果是这样的话,我知道我说过据我所知PHP不可能获取HTML表数据。我的假设是错误的吗?作为对您编辑的回应。我的数据是从MySQL查询创建的,然后以HTML格式放入表中。为了能够构建HTML表,您需要数据。找出数据的来源(服务器端)。然后通过调用生成该数据的方法重新使用该数据,或者查询数据库以提取所需的数据。谢谢您的回答:)对于这种方法,我有一个问题:如果我拥有的功能超过了那个功能,它就不会干扰它们了?@JulioGarcia:对不起,我没有理解
的含义,如果我拥有的功能超过那个功能,它就不会干扰它们了?
,你能不能elaborate@AkshayHedge是的,当然。我将把函数放在一个文件中,该文件包含更多函数,如
updateCosts()
updateQty()
..@JulioGarcia:没问题,您可以放置任意数量的函数,并且可以process@AkshayHedge很抱歉,我花了很长时间才回答。我尝试了你的方法,但我一直收到
错误:错误:jQuery21405680291895882033_1487801210725没有打电话
谢谢你的回答:)对于这种方法,我有一个问题:如果我拥有的功能超过了那个功能,它就不会干扰它们了?@JulioGarcia:对不起,我没有理解
的含义,如果我拥有的功能超过那个功能,它就不会干扰它们了?
,你能不能elaborate@AkshayHedge是的,当然。我将把函数放在一个文件中,该文件包含更多函数,如
updateCosts()
updateQty()
..@JulioGarcia:没问题,您可以放置任意数量的函数,并且可以process@AkshayHedge很抱歉,我花了很长时间才回答。我尝试了您的方法,但不断收到
错误:错误:jQuery21405680291895882033_1487801210725未被调用