从MySQL表动态创建JavaScript对象

从MySQL表动态创建JavaScript对象,javascript,php,mysql,object,Javascript,Php,Mysql,Object,假设我有这个表mytable id | name | x | y 我从mytable中提取行,并使用它创建JavaScript对象,如下所示: PHP $sql = "SELECT * FROM mytable"; $result = $conn->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo '<script

假设我有这个表
mytable

id | name | x | y

我从
mytable
中提取行,并使用它创建JavaScript对象,如下所示:

PHP

$sql = "SELECT * FROM mytable";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {  
        echo '<script type="text/javascript">';
        echo "new Object({$row["id"]}, '{$row["name"]}', {$row["desk_x"]}, {$row["desk_y"]});";
        echo '</script>';            
    }
}
目前这还可以,但假设我想在
mytable
中添加另一列
color


基本上,我是在问我应该用PHP和JS写些什么来动态创建这个对象,这样你就可以有任何列,而
对象将只添加一个列名称的新属性?

你可以使用
AJAX
将数据从服务器端发送到客户端。假设您的代码中有一个名为
script.PHP
PHP
文件:

if(isset($_GET['action']) && $_GET['action'] == 'testing'){
    $sql = "SELECT * FROM mytable";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
          echo json_encode($result);
    }
}
假设您有一个名为
script.JS
JS
文件。在这里,您将对
PHP
脚本文件执行
AJAX
调用,如下所示:

$.ajax({
  type: 'GET',
  url: 'script.php',
  data: { action: 'testing' },
  success: function(response){
     console.log(response); //here you will have access to the object returned from the PHP script
  }
})

您可以使用
AJAX
将数据从服务器端发送到客户端。假设您的代码中有一个名为
script.PHP
PHP
文件:

if(isset($_GET['action']) && $_GET['action'] == 'testing'){
    $sql = "SELECT * FROM mytable";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
          echo json_encode($result);
    }
}
假设您有一个名为
script.JS
JS
文件。在这里,您将对
PHP
脚本文件执行
AJAX
调用,如下所示:

$.ajax({
  type: 'GET',
  url: 'script.php',
  data: { action: 'testing' },
  success: function(response){
     console.log(response); //here you will have access to the object returned from the PHP script
  }
})

我想您需要的是如何在没有AJAX的情况下实现这一点(这里您并不真正需要AJAX)

将对象放入数组中,然后输出JS变量:

PHP:

$rows=[];
如果($result->num\u行)
而($row=$result->fetch_assoc())$rows[]=$row;//附加到数组
echo“var objArray=”。json_编码($rows)。"; ";

我想您想要的是如何在没有AJAX的情况下做到这一点(这里您并不真正需要AJAX)

将对象放入数组中,然后输出JS变量:

PHP:

$rows=[];
如果($result->num\u行)
而($row=$result->fetch_assoc())$rows[]=$row;//附加到数组
echo“var objArray=”。json_编码($rows)。"; ";


我正在寻找一种方法,从表中获取列,并生成一个具有相同属性的java脚本对象。我的答案中的代码应该满足您的需要。控制台正在打印我的整个index.php文件。这取决于
php
文件中的内容。这应该只是我刚才添加到答案中的代码的一部分。或者您可以检查
$\u GET
请求。@AdamStück,请检查我的答案中更新的代码。我正在寻找一种从表中获取列并生成具有相同属性的java脚本对象的方法。我的答案中的代码应该满足您的需要。控制台正在打印我的整个index.php文件。这取决于
php
文件中的内容。这应该只是我刚才添加到答案中的代码的一部分。或者您可以检查
$\u GET
请求。@AdamStück,请检查我的答案中更新的代码。如果AJAX更好,您将如何使用它?听起来好像您不知道AJAX是什么/做什么。你没有说你是否试过我的密码。我试过你的代码,但如果AJAX是更好的选择,你能告诉我你会写什么吗?我尝试了上面@Ionut中的AJAX代码,但效果不好。顺便说一下,我已经在使用AJAX更新数据库中的数据了。我不知道AJAX是不是更好的选择,或者你是否需要它。很抱歉,我很难估计你的知识水平,我也不知道你还需要多少信息(这不是一所初级编码学校)。要求我将代码转换为AJAX意味着你不知道如何使用它,而这个问题(或网站)不是学习如何使用AJAX的地方。如果AJAX更好,你会如何使用它?听起来好像你不知道AJAX是什么/做什么。你没有说你是否试过我的密码。我试过你的代码,但如果AJAX是更好的选择,你能告诉我你会写什么吗?我尝试了上面@Ionut中的AJAX代码,但效果不好。顺便说一下,我已经在使用AJAX更新数据库中的数据了。我不知道AJAX是不是更好的选择,或者你是否需要它。很抱歉,我很难估计你的知识水平,我也不知道你还需要多少信息(这不是一所初级编码学校)。要求我将代码转换为AJAX意味着你不知道如何使用它,而这个问题(或网站)不是学习如何使用AJAX的地方。不要调用你的函数
对象
<代码>对象
已存在,您将覆盖该对象,从而无法访问原始的
对象
。而且,
Object
对于构造函数来说并不是一个真正的表达性名称,是吗?我知道。这是一个不是我实际代码的示例。不要调用你的函数
对象
<代码>对象
已存在,您将覆盖该对象,从而无法访问原始的
对象
。而且,
Object
对于构造函数来说并不是一个真正的表达性名称,是吗?我知道。这是一个示例,不是我的实际代码。