0

我有一个在应用程序启动时填充的管道尺寸下拉框。

当我在另一个下拉框中选择管道类型时,我希望它能够动态改变。我已经设法制作了 ajax 功能,其中根据选择的管道绘制了所有尺寸的 html 表格。所以我只想将此功能嵌入到同一个文件中。

下面的代码创建了一个带有尺寸的新下拉框。但我已经有一个(id=dimensions)。

如何填充现有的而不创建新的?

echo "<select id='dimensions'>";

while ($row = mysql_fetch_array($result2)) {
   echo "<option value='" . $row['nominalsize'] ."'>" . 
    $row['nominalsize'] ."</option>";
}

echo "</select>";
4

3 回答 3

0

要在页面加载后填充控件,您需要一些技术,例如 AJAX:

这是一个基本的工作流程:

  1. 使用以下信息创建响应(HTML o AJAX)
  2. 在页面调用来自 javascript 的 HTTP 请求(我推荐 jQuery 来完成这个任务)
  3. 在请求的回调中构建

例子

选项.php

<?php
// http://localhost/options.php
// /var/www/options.php
$options = array(
   1 => 'Cat',
   2 => 'Dog'
);

header('Cache-Control: no-cache, must-revalidate');
header('Content-type: application/json');

return json_enconde($options);

脚本.js

// script.js in your page
$(document).ready(function(){
  var $select = $('#id-select);
  $.ajax({
    url: '/options.php',
    dataType: 'json',
    success: function(data) {
       $.each(data, function(i, e) { 
          $select.append($('<option value=' + i + '>' + e + '</option>'));
       });
    }
  });
});

以前只是示例,但您可以想出一个主意

于 2012-09-29T16:05:36.587 回答
0

如何填充现有的而不创建新的?

这很简单,但应该这样做:在发送 AJAX 请求之前,<select id='dimensions'>从 DOM 中删除现有的。然后您可以稍后安全地插入它。

为了缩短时间,您也可以在插入之前将其移除。所以在你得到 AJAX 响应的时候。

于 2012-09-29T15:29:17.680 回答
0

如果您有一个数据库表,其大小值在您自己的网页使用中定义,则:

<?php 
// Assume that $nominalsize already exists with real value 

$sql = "SELECT * FROM table WHERE nominalsize='$nominalsize'"; 
$res = mysql_query($sql) or die(mysql_error()); 

if (mysql_num_rows($res) > 0) 
{ 
  // There is already a row with the specified $nominalsize
} 
else 
{ 
  // Not exist, then ... INSERT
}

如果没有,并且您喜欢从另一个页面检索信息,则需要 CURL 或 DOM,并提取标签。

于 2012-09-29T15:40:06.400 回答