php
2012-09-29 116 views 0 likes 
0

我有一个在应用程序开始时填充了管道尺寸的下拉框。将数据添加到现有控件

我希望这可以动态改变,当我在另一个dropdownbox中选择管道类型。我已经设法制作一个html表格,其中根据所选择的管道来绘制所有尺寸的html表格。所以我只想将这个特性嵌入到同一个文件中。

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

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

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

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

echo "</select>"; 
+0

请不要使用'mysql_ * '函数来编写新的代码。他们不再维护,社区已经开始[弃用程序](http://goo.gl/KJveJ)。请参阅* [红盒子](http://goo.gl/GPmFd)*?相反,您应该了解[准备好的语句](http://goo.gl/vn8zQ)并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能决定哪些,[这篇文章](http://goo.gl/3gqF9)会帮助你。如果你选择PDO,[这里是很好的教程](http://goo.gl/vFWnC)。 –

+0

嘎!当你谷歌“PHP教程”,你认为结果是最新的。但不是。然后回到原点。 Thx的信息。 – Per

回答

0

如何填充现有的,而不是创建一个新的?

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

为了保持时间短,您还可以在插入它之前将其删除。所以当你获得AJAX响应时。

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 
} 

如果没有,你喜欢retrive从你需要卷曲或DOM, 和提取标签另一页的信息。

0

用于填充控件的页面加载后,你需要像AJAX一些技巧:

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

  1. 创建响应(HTMLØAJAX)与
  2. 的信息在从JavaScript页面调用HTTP请求
  3. (我推荐的jQuery此任务)
  4. 在请求的回调打造

Options.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); 

的script.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>')); 
     }); 
    } 
    }); 
}); 

以前仅仅是样品,但你可以计算一个想法

相关问题