使用单个数据库访问填充多个html字段

时间:2011-11-15 12:55:28

标签: php html ajax wordpress

这是一个很长的问题,但不是太复杂,所以请耐心等待。

我正在建立一个WordPress网站 其中一页应该显示商店列表 有5个字段,我应该填充我从DB获得的商店。

现在我这样做(在页面模板中):

有一个javascript ajax请求在加载html后工作,并要求服务器端的PHP代码从数据库中获取商店。
当它们被返回时,javascript随后会填充那些商店的html字段。

现在,我知道这是错误的表现 在将html发送到客户端之前,我应该填充服务器端的字段。

所以我的问题是这样的:
访问数据库5次是没有意义的(对于5个商店和领域) 我只想访问它一次,获得所有5个商店,并填充字段 但是如何在html中的5个不同位置使用数据库返回的数组呢?

在这个例子中,我将所有商店都放到了一个领域。我如何将它们传递给其他领域?

<tr><td><input id="shop1" type="textbox" value="<?php global $wpdb; echo $wpdb->get_results("SELECT * FROM shops"); ?>"></td></tr>
<tr><td><input id="shop2" type="textbox" value=""></td></tr>
<tr><td><input id="shop3" type="textbox" value=""></td></tr>
<tr><td><input id="shop4" type="textbox" value=""></td></tr>
<tr><td><input id="shop5" type="textbox" value=""></td></tr>

2 个答案:

答案 0 :(得分:2)

试试这个

<?php 
global $wpdb; 
$results =  $wpdb->get_results("SELECT * FROM shops");
$i = 1;    
foreach ( $results as $shop ) 
{
  echo '<tr><td><input id="shop'.$i.
       '" type="textbox" value="">'.$shop->name_of_field_you_need.'</td></tr>';
      $i++;
}
?>

答案 1 :(得分:2)

如果商店之间没有HTML:

<?php
global $wpdb;
$results = $wpdb->get_results("SELECT * FROM shops");
?>

//stuff

<?php foreach( $results as $result ): ?>
<tr><td><input id="shop<?php echo $result -> shop_id; ?>" type="textbox" value="<?php echo $result -> fieldName; ?>"></td></tr>
<?php endforeach; ?>

如果有的话,就像这样:

<?php
global $wpdb;
$results = $wpdb->get_results("SELECT * FROM shops");
?>

<tr><td><input id="shop1" type="textbox" value="<?php echo $results[0] -> fieldName; ?>"></td></tr>

//random stuff here

<tr><td><input id="shop2" type="textbox" value="<?php echo $results[1] -> fieldName; ?>"></td></tr>

//random stuff here

<tr><td><input id="shop3" type="textbox" value="<?php echo $results[2] -> fieldName; ?>"></td></tr>

//random stuff here

<tr><td><input id="shop4" type="textbox" value="<?php echo $results[3] -> fieldName; ?>"></td></tr>

//random stuff here

<tr><td><input id="shop5" type="textbox" value="<?php echo $results[4] -> fieldName; ?>"></td></tr>