我很好奇您是否可以将HTML属性用作SQL查询变量。
例如:
<div class="btn" id="foo" bar="baz">
<?
$bar = **something goes here**;
$sql = "SELECT * FROM foo WHERE bar = '$bar' ORDER BY barname ASC";
$result = mysql_query($sql);
?>
</div>
因此$bar
将等于bar
标记的<div>
属性的值。这可能吗?任何意见都表示赞赏!
答案 0 :(得分:0)
此?
<?
$bar = '**something goes here**';
?>
<div class="btn" id="foo" bar="<?=$bar?>">
<?
$sql = "SELECT * FROM foo WHERE bar = '$bar' ORDER BY barname ASC";
$result = mysql_query($sql);
?>
</div>
答案 1 :(得分:0)
可以使用缓冲来捕获PHP程序运行时的输出,解析从中获取的部分HTML文档,然后从中提取属性值......但这会非常复杂。
这种方式就是疯狂。跳到下一部分,了解问题的理解方法。
<?php
ob_start();
?>
<!DOCTYPE HTML>
<meta charset="utf-8">
<title>Experiments in output buffering</title>
<div class="btn" id="foo" bar="baz">
<?php
$doc = ob_get_contents();
$dom = new domDocument;
$dom->loadHTML($doc);
$div = $dom->getElementById('foo');
$bar = $div->attributes->getNamedItem('bar')->value;
echo "The value of \$bar is $bar";
?>
</div>
如果要在多个位置使用一段数据,请将其存储在变量(或常量)中,然后在多个位置使用它。
<?php
$bar = get_user_preference();
?>
<div class="btn" id="foo" bar="<?php echo htmlspecialchars($bar); ?>">
<?php
$stmt = $db->prepare('SELECT * FROM foo WHERE bar = ? ORDER BY barname ASC');
$stmt->bind_param('s',$bar);
$stmt->execute();
?>
</div>