2017-07-17 47 views
0

可以說我有這個表mytable動態地創建JavaScript對象從MySQL表

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>';    
    } 
} 

J小號

function Object(id, name, x, y) { 
    var obj = { 
     id:id, 
     name:name, 
     x:x, 
     y:y 
    }; 
} 

目前,這是好的,但可以說,我想另一列color添加到mytable

基本上我問什麼我在PHP和JS寫盡此對象動態,所以你可以有任何列和Object對象將只添加一個新的屬性與列的名稱?

+0

**不要叫你的函數'Object' **'Object'已經存在,並你將覆蓋它,失去對原始「對象」的訪問。另外,「對象」並不是一個真正的構造函數的表達名稱,是嗎? – PeterMader

+0

我知道。這是一個不是我的實際代碼的例子。 –

回答

1

我猜你要尋找的是如何做到這一點沒有AJAX(你並不真的需要在這裏)。

把對象的數組,然後輸出你的JS變量:

PHP:

$rows = []; 
if ($result->num_rows) 
    while($row = $result->fetch_assoc()) $rows[] = $row; // append to array 
echo "<script> var objArray = " . json_encode($rows) . "; </script>"; 
+0

如果AJAX更好,你會如何做到這一點? –

+0

聽起來好像你不知道AJAX是什麼。你沒有說你是否嘗試過我的代碼。或者它是否有效。 –

+0

我試過你的代碼,它的工作原理,但如果AJAX是更好的選擇,你能告訴我你會寫什麼?我嘗試了@Ionut上面的AJAX代碼,但它不能正常工作。順便說一句,我正在使用AJAX更新數據庫中的數據。 –

2

您可以使用AJAX將數據從服務器端發送到客戶端。比方說你有一個PHP文件名爲script.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); 
    } 
} 

而且可以說你有一個JS文件名爲script.js。在這裏,你會盡你AJAX電話對這樣的PHP腳本文件:

$.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 
    } 
}) 
+0

我正在尋找一種方法來獲取表中的列,並使具有相同屬性的java腳本對象 –

+1

我的答案中的代碼應該只是你所需要的。 – Ionut

+0

控制檯正在打印我的整個index.php文件 –