php
2012-09-29 111 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>')); 
     }); 
    } 
    }); 
}); 

以前僅僅是樣品,但你可以計算一個想法

相關問題