0

我通过查看站点内的类似问题尝试了几种解决方案,但它对我不起作用。=(请帮忙。

这是我原始代码的摘录:

<form action="" method="get">
<input type="text" name="search" value="">
<input type="submit" value="Search">
<?php echo do_shortcode('[expand]
<input type="checkbox" name="title" <?php if(isset($_GET['title'])) echo "checked='checked'"; ?>>
    <label for="ti">Title</label></td>
[/expand]'); ?>
</form>

基本上,我希望我的复选框保持选中状态,如果它们在点击提交之前被选中。不幸的是,已经好几个小时了,我无法让 php 在简码中工作。

请帮忙。

4

3 回答 3

0

不,你不能。字符串中的 php 代码不是 PHP 代码。您必须检测实际上是 PHP 的部分,并对其进行评估。

[expand]在将其传递给do_shortcode()函数之前,创建要嵌入标签的字符串。

于 2013-08-16T09:49:04.027 回答
0

而不是 > 标题 [/expand]'); ?>

简单地做

<?php
$state = isset($_GET['title'])?"checked='checked'":"";
$expand = "[expand]
<input type=\"checkbox\" name=\"title\" ".$state. " >";
echo do_shortcode($expand);?>
于 2013-08-16T09:52:51.093 回答
0

你可以试试这个,

<form action="" method="GET">
    <input type="text" name="search" value="">
    <input type="submit" value="Search">
    <?php 
     $check=isset($_GET['title']) ? "checked='checked'" : '';
     echo do_shortcode('[expand]
     <input type="checkbox" name="title" '.$check.' ><label for="ti">Title</label></td>
     <input type="submit" value="Search">
     [/expand]'); 
    ?>
</form>
于 2013-08-16T10:00:42.607 回答