0

我在数据库中有一个表,我想使用 JavaScript 中的 XMLHttpRequest 将其呈现到 PHP 页面。我想将表格中的每个条目呈现为 HTML 行/单元格,并在每个“条目”中有两个按钮。我想让条目中的每个按钮都调用一个特定的 JavaScript 函数来处理逻辑。

所以基本上,如果我在表中有 10 行,我将有 20 个按钮,每个按钮将根据单击的按钮的“类型”将参数传递给两个函数。

关于我如何去做这件事的任何想法?

谢谢!

4

1 回答 1

1

在您的服务器上,您需要一个 PHP 文件/操作来执行以下操作:

$return = array();
$q = mysql_query('SELECT * FROM ...');
while(($return[] = mysql_fetch_assoc($q)) !== false);
echo json_encode($return);

在预构建的 HTML 页面中,您需要一个容器来打印数据:

<div id="db-container"></div>

然后是该页面中包含的 JS(我在这里使用 jQuery 是为了简单和易读,尽管您可以使用本机 JS 或任何其他 JS 工具来完成):

function getDB() {
  $.getJSON(
    'http://url.to/your/code.php',
    {},
    function(data) {
      var renderedHTML = '';
      /* parse the object representing PHP's $return, mainKey will be numerical keys */
      for(var mainKey in data) {
        /* one main loop iteration == one table row */
        renderedHTML += '<tr>'
        /* data[mainKey] is a row in DB, subKey will contain a name of a DB table column */
        /* data[mainKey][subKey] will therefore contain the value of DB table column 'subKey' for the DB table row numbered 'mainKey' */
        for(var subKey in data[mainKey]) {
          renderedHTML += '<td>' + data[mainKey][subKey] + '</td>'
        }
        /* statically add another HTML table column for the buttons */
        renderedHTML += '
          <td>
            <input type="button" name="b1" onclick="func1(\'arg1\')">
            <input type="button" name="b2" onclick="func2(\'arg2\')">
          </td>
        ';
        renderedHTML += '</tr>'
      }
      /* insert the built table into the page */
      $('#db-container').html('<table>' + renderedHTML + '</table>');
    }
  );
}

希望这可以帮助。

于 2012-09-21T08:18:42.747 回答