我有一个输入,我想在输入提交时运行一些SQL查询。
但我想为每个输入运行不同的SQL查询。例如,如果我将<?php echo $value['id'][$i]; ?>
代码放在输入附近,则会在此图像中显示ID。
Input Id's
我的输入表单是这样的:
<form action='' method='POST' style="margin-top: 213px;">
<input type='submit' name='submit'/><?php echo $value['id'][$i]; ?>
</form>
我的 if 代码是这样的:
if(isset($_POST['submit'])){
$wpdb->update( $wpdb->options, array("option_value" => "ff0000"), array("option_name" => "theme-bg"), array("%s"), array("%s") ); }
我想编辑代码并为每个输入按钮运行不同的sql查询。 我希望我能解释一下我的问题。
感谢您阅读。
Edit1:我的整个代码;
<?php
$i = 0;
foreach ($value['options'] as $box):
$checked = '';
$class = '';
$img_size = '';
if ($value['image_size'][$i])
$img_size = 'width="' . $value['image_size'][$i] . '"';
else if ($value['image_size'][$i] == false && $value['image_size'][0] == true)
$img_size = 'width="' . $value['image_size'][0] . '"';
else
$img_size = 'width=""';
if (get_option($value['id'][$i])) {
if (get_option($value['id'][$i]) == 'true') {
$checked = ' checked="checked"';
$class = ' acesra-img-selected';
}
} elseif ($value['default'][$i] == "checked") {
$class = ' acesra-img-selected';
$checked = ' checked="checked"';
}
?>
<label class="self-theme-select<?php echo $class; ?>" for="<?php echo $value['id'][$i]; ?>">
<img src="<?php echo $value['image_src'][$i]; ?>" alt="<?php echo $box ?>" />
<input class="acera-image-checkbox-b" type="checkbox"<?php echo $checked; ?> name="<?php echo $value['id'][$i]; ?>" id="<?php echo $value['id'][$i]; ?>" />
<?php if ($value['show_labels'] == "true"): ?><p><?php echo $box; ?></p><?php endif; ?>
<form action='' method='POST' style="margin-top: 213px;">
<input type='submit' name='submit'/><?php echo $value['id'][$i]; ?>
</form>
</label>
<?php if(isset($_POST['submit'])){
$wpdb->update( $wpdb->options, array("option_value" => "ff0000"), array("option_name" => "tema-bg"), array("%s"), array("%s") );
} ?>
<?php
$i++;
endforeach;
?>
</div>
答案 0 :(得分:0)
你可以这样做:
<form action='' method='POST' style="margin-top: 213px;">
<input type='submit' name='submit1'/><?php echo $value['id'][$i]; ?>
<input type='submit' name='submit2'/><?php echo $value['id'][$i]; ?>
<input type='submit' name='submit3'/><?php echo $value['id'][$i]; ?>
</form>
然后:
if(isset($_POST['submit1'])){
$wpdb->update( $wpdb->options, array("option_value" => "ff0000"), array("option_name" => "theme-bg"), array("%s"), array("%s") ); }
elseif(isset($_POST['submit2'])){
//another query for submit2
}
elseif(isset($_POST['submit3'])){
//another query for submit3
}
代码已修改
更改了这一行:
<input type='submit' name='submit<?php echo $i ?>'/><?php echo $value['id'][$i]; ?>
这里我们动态创建name属性的值
<?php
$i = 0;
foreach ($value['options'] as $box):
$checked = '';
$class = '';
$img_size = '';
if ($value['image_size'][$i])
$img_size = 'width="' . $value['image_size'][$i] . '"';
else if ($value['image_size'][$i] == false && $value['image_size'][0] == true)
$img_size = 'width="' . $value['image_size'][0] . '"';
else
$img_size = 'width=""';
if (get_option($value['id'][$i])) {
if (get_option($value['id'][$i]) == 'true') {
$checked = ' checked="checked"';
$class = ' acesra-img-selected';
}
} elseif ($value['default'][$i] == "checked") {
$class = ' acesra-img-selected';
$checked = ' checked="checked"';
}
?>
<label class="self-theme-select<?php echo $class; ?>" for="<?php echo $value['id'][$i]; ?>">
<img src="<?php echo $value['image_src'][$i]; ?>" alt="<?php echo $box ?>" />
<input class="acera-image-checkbox-b" type="checkbox"<?php echo $checked; ?> name="<?php echo $value['id'][$i]; ?>" id="<?php echo $value['id'][$i]; ?>" />
<?php if ($value['show_labels'] == "true"): ?><p><?php echo $box; ?></p><?php endif; ?>
<form action='' method='POST' style="margin-top: 213px;">
<input type='submit' name='submit<?php echo $i ?>'/><?php echo $value['id'][$i]; ?>
</form>
</label>
<?php
if(isset($_POST['submit0'])){
$wpdb->update( $wpdb->options, array("option_value" => "ff0000"), array("option_name" => "tema-bg"), array("%s"), array("%s") );
}elseif(isset($_POST['submit1'])){
// query for submit1
}elseif(isset($_POST['submit2'])){
// query for submit2
}elseif(isset($_POST['submit3'])){
// query for submit3
}
?>
<?php
$i++;
endforeach;
?>
</div>
我也编辑了这个块:
<?php
if(isset($_POST['submit0'])){
$wpdb->update( $wpdb->options, array("option_value" => "ff0000"), array("option_name" => "tema-bg"), array("%s"), array("%s") );
}elseif(isset($_POST['submit1'])){
// query for submit1
}elseif(isset($_POST['submit2'])){
// query for submit2
}elseif(isset($_POST['submit3'])){
// query for submit3
}
?>
但是这个可能适合你的foreach循环。 像这样:
<?php
if(isset($_POST['submit'.$i])){ // adding $i here
$wpdb->update( $wpdb->options, array("option_value" => "ff0000"), array("option_name" => "tema-bg"), array("%s"), array("%s") );
}
?>
虽然这取决于您的查询在每个提交案例中的准确程度。