0
私はテーブルからすべてのコンテンツを表示するdrupalのテーブルを持っています。私は各レコードに編集リンクを追加しました。このリンクは、レコードに対応する値が入力された入力フォームにユーザーを移動させる必要があります。これで、フォームに最後の行を入力するだけです。編集リンク付きdrupalテーブル
行xについては、レコードxの値が入力されたフォームが必要です。
テーブルはあなたが前に、あなたのwhile
ループを表示さ$rows = array();
持ってしたいと思う
function _MYMODULE_sql_to_table($sql) {
$html = "";
// execute sql
$resource = db_query($sql);
// fetch database results in an array
$results = array();
while ($row = db_fetch_array($resource)) {
$results[] = $row;
$email = $row['p1'];
$comment = $row['p2'];
}
// ensure results exist
if (!count($results)) {
$html .= "Sorry, no results could be found.";
return $html;
}
// create an array to contain all table rows
$rows = array();
// get a list of column headers
$columnNames = array_keys($results[0]);
// loop through results and create table rows
foreach ($results as $key => $data) {
// create row data
$row = array(
'edit' => l(t('Edit'),"admin/content/test/$p1/$p2/Table1", $options=array()),);
// loop through column names
foreach ($columnNames as $c) {
$row[] = array(
'data' => $data[$c],
'class' => strtolower(str_replace(' ', '-', $c)),
);
}
// add row to rows array
$rows[] = $row;
}
// loop through column names and create headers
$header = array();
foreach ($columnNames as $c) {
$header[] = array(
'data' => $c,
'class' => strtolower(str_replace(' ', '-', $c)),
);
}
// generate table html
$html .= theme('table', $header, $rows);
return $html;
}
// then you can call it in your code...
function _MYMODULE_some_page_callback() {
$html = "";
$sql = "select * from {contactus}";
$html .= _MYMODULE_sql_to_table($sql);
return $html;
}
function display(){
$results = array();
$html = "";
$resource = db_query("select * from contactus");
$output = '';
while($row = db_fetch_array($resource)){
$results[] = $row;
}
if(!count($results)){
$html.= "Unable to display table";
return $html;
}
$rows = array();
$columnNames = array_keys($results[0]);
foreach($results as $key=>$data){
$row = array();
foreach($columnNames as $c){
$row = array(
'data' => $data[$c],
'class' => strtolower(str_replace(' ', '-', $c)),
);
}
$rows[] = $row;
}
$header = array();
foreach($columnNames as $c){
$header[] = array(
'data' => $c,
'class' => strtolower(str_replace(' ', '-', $c)),
);
}
$html .= theme('table', $header, $rows);
return $html;
}
あなたの質問は正確ですか?また、Drupalにデータを格納する必要がある場合は、ノードシステムまたはデータモジュール(http://drupal.org/project/data)を使用してください。 – marcvangend
node_save()を使って$ nodeシステムを使ってデータを正常に保存できます。しかし、この場合、私は$ nodeを使用していません。カスタムテーブルにレコードを作成するフォームです。私はフォームを作成するだけです。 drupal(i)drupal_execute(ii)form_set_valueには、これを可能にする2つのメソッドがあります。私はどちらかを使用するとエラーが発生しています。したがって、実用的な例が役に立つでしょう。申し訳ありませんが、それはこの質問の範囲外です。しかし、それが私の主な問題です。このテーブルの編集リンクを作成してフォームにリダイレクトすることができました。 THANKS – user550265