我正在使用这个自定义代码,它可以很好地提取Wordpress表的信息:
$post_ids = $wpdb->get_results("SELECT id FROM wp_posts");
foreach ( $post_ids as $ids )
{
echo "<form action='make.php' method='post'>";
echo "<input type='text' name='" . $ids->id . "'><input type='submit' name='id'>";
echo "</form>";
}
在同一个php文件的最顶层我有这段代码:
if(isset($_POST['id'])){
echo $ids->id;
}
我的问题是:如何将提交的文本字段的唯一ID传递给 -if-在页面顶部的声明?最终我想用它来更新Wordpress表。
答案 0 :(得分:0)
首先,编写代码的方式,每次通过循环为每个帖子ID创建一个新表单。
这需要通过移动打开和关闭<form ...></form>
标记以及提交按钮来更改
在循环之外。
其次,make.php文件无法获取$ids->id
变量(请记住HTTP是无状态协议)
除非你让它知道它可以使用PHP的一个超级全局数组,在这种情况下是$_POST
超全局
阵列。
考虑到以上几点,您的代码的重写版本如下所示:
$post_ids = $wpdb->get_results("SELECT id FROM wp_posts");
echo "<form action='make.php' method='post'>";
foreach ( $post_ids as $ids )
{
echo "<input type='text' name='". $ids->id. "' value='". $ids->id. "'><br>";
}
echo "<input type='submit' name='id'>";
echo "</form>";
然后在'make.php'文件中:
if(isset($_POST['id']))
{
foreach($_POST AS $key => $value)
{
if($key != 'id') //make sure we don't include the submit button in our processing
{
$unique_post_id = trim($value);
echo $unique_post_id. '<br>';
//do something with $unique_post_id
}
}
}