Php 单击“提交”按钮后未解析表单数据

Php 单击“提交”按钮后未解析表单数据,php,forms,radio-button,form-submit,isset,Php,Forms,Radio Button,Form Submit,Isset,我不能让我的表格工作,几个小时后,我必须承认我已经没有想法了。 页面上的第一个表单工作正常 ?php global $wpdb; $user = wp_get_current_user(); $id = isset( $user->ID ) ? (int) $user->ID : 0 ; $mesprojets = $wpdb->get_results("SELECT * FROM pp_posts WHERE post_author='".$id."' AND post_

我不能让我的表格工作,几个小时后,我必须承认我已经没有想法了。 页面上的第一个表单工作正常

?php
global $wpdb;
$user = wp_get_current_user();
$id = isset( $user->ID ) ? (int) $user->ID : 0 ;

$mesprojets = $wpdb->get_results("SELECT * FROM pp_posts WHERE post_author='".$id."'  AND post_status='publish'  AND post_type='project'  ORDER BY ID DESC LIMIT 8");

// Tous les posts et tous les candidats pour un client
$mescandidats = $wpdb->get_results("SELECT pp_posts.*, pp_candidates.* FROM pp_posts JOIN pp_candidates ON (pp_posts.ID = pp_candidates.project_ID)   AND pp_posts.post_author='".$id."' AND pp_posts.post_type='project'  AND pp_posts.post_status='publish'  ORDER BY pp_posts.ID DESC LIMIT 8");

echo "<table id='mesprojets' style='width:100%;' class='liste-projet'>";
foreach($mesprojets as $monprojet)
    {
        $thispostlink = get_the_permalink($monprojet->ID);
        $mescandidatspourunpost = $monprojet->ID;
        $postID = $monprojet->ID;
        $categories = get_the_category($postID);

    echo '<tr><td class="title-projet col-33" style="text-transform: uppercase;">'.$monprojet->post_title.'</td><td class="col-10">'.$categories[0]->name.'</td><td class="col-15"><a href=" '. $thispostlink . ' " class="btn-projet2">Voir le projet</a></td>
    <td class="col-15">
    <form action="" method="post">
    <button type="submit" name="candidatebutton" value="'.$mescandidatspourunpost.'" class="btn-candidat">Voir les candidats</button>
    </form></td></tr>';
    }
echo '</table>';
?php
全球$wpdb;
$user=wp_get_current_user();
$id=isset($user->id)?(int)$user->ID:0;
$mesprojets=$wpdb->get_results(“从pp_posts中选择*,其中post_author='”“$id.””,post_status='publish'和post_type='project'按id顺序描述限制8”);
//我们的职位和候选人都是联合国客户
$mescandidates=$wpdb->get_results(“选择pp_posts.*,pp_候选者。*从pp_posts中加入pp_候选者(pp_posts.ID=pp_候选者.project_ID)和pp_posts.post作者=”$ID.”和pp_posts.post类型='project'和pp_posts.posts状态='publish'顺序由pp_posts.ID描述限制8”);
回声“;
foreach($mesprojets作为$monprojet)
{
$thispostlink=获取永久链接($monprojet->ID);
$mescandidatespourunpost=$monprojet->ID;
$postID=$monprojet->ID;
$categories=获取\u类别($posted);
回显“.$monprojet->post_title.”.$categories[0]->name
候选人之声
';
}
回声';
这张表格给了我第二张表格中需要的ID。表单内容解析正确。第二个表单将用于使用单选按钮和最终提交按钮选择候选人。最终,这个表单结果将用于更新数据库,但目前我只是想回显一些文本,看看它是否有效

if (!isset($_POST['candidatebutton'])) 
  {
    global $wpdb, $postID, $thispostlink;
    echo '<div class="projectcandidatelist"></div>';
  }
else
{
  $user = wp_get_current_user();
  $id = isset( $user->ID ) ? (int) $user->ID : 0 ;
  $useremail = $user->user_email;

  $project_candidat = $wpdb->get_results("SELECT *  FROM pp_candidates WHERE project_ID ='".$_POST['candidatebutton']."' ");

if(isset($_POST['candidate_choice']))
{
  global $wpdb, $selected_candidate, $postid, $selectthiscandidate;
   echo '<script type="text/javascript">alert("Chosen");</script>';
  echo "<div class='acceptationmessage' id='acceptmission'>Merci d’avoir choisis ce candidat. Nous l’avertirons par mail de votre décision.</div>";
}

  echo '<div class="projectcandidatelist"><form action="" id="candidat_list"  name="candidat_list" method="post">
    <table id="candidate_selection_list" class="liste-candidat">';

  foreach($project_candidat as $candidat)
    {
      $selectthiscandidate = $candidat->candidate_ID;
      echo  '<tr>         
      <td class="title-candidat"><input type="radio" name="candidate_choice" value="'.$selectthiscandidate.'" > '.$candidat->candidate_displayname. '</td></tr>';
    }
  echo '</table><input type="submit" value="Je choisis cet étudiant" name="selectCandidate_btn" class="btn-candidat">';    
  echo '</form></div>';       
} 
?>
if(!isset($_POST['candidatebutton']))
{
全局$wpdb、$postID、$thispostlink;
回声';
}
其他的
{
$user=wp_get_current_user();
$id=isset($user->id)?(int)$user->id:0;
$useremail=$user->user\u email;
$project_candidate=$wpdb->get_results(“从project_ID='”的pp_候选者中选择*”。$_POST['candidatebutton'].“”);
如果(isset($_POST['candidate_choice']))
{
全局$wpdb、$selected_candidate、$posted、$selectthiscandidate;
回显“警报”(“选定”);
回声“MeCI D'AvIIR CysIS CE CordDAT。
}
回声'
';
foreach($project_候选项目作为$PRODUCTAT)
{
$selectthiscandidate=$candidatet->candidate\u ID;
回声'
“.$candidate->candidate_displayname.”;
}
回声';
回声';
} 
?>

javascript警报和echo分区都没有。。。正在放映。非常感谢所有的帮助。

这当然是我的心病,但如果您在完成逻辑后退出php,只进入html(使用php进行迭代和变量替换),代码将更易于阅读和调试。此外,非破坏性请求应该是GET,而不是POST。(研究PRG模式)。有时,仅仅重构代码以将逻辑与表示分离就可以解决问题。在这种情况下,您可以很容易地看到没有从上一个表单发送的
$\u POST['candidate\u choice']
。感谢@TimMorton对此进行调查。我将尝试实现您的建议,并尝试了解为什么不发送变量。您能否解释一下或举例说明“重构代码以将逻辑与表示分离”的含义。谢谢你,只要我能在下班后拿到它……:)看到您使用的是
global$wpdb
$wpdb->get_results()
,我推测您使用的是WordPress?我很少使用WP或Joomla等人,因为我见过Joomla代码,而且仍然做噩梦。所以这是我第一次深入研究WP,尽管它被吹捧为具有更好的安全性。。。我吓坏了。他们甚至不使用事先准备好的陈述。因此,我左右为难:为了向您展示一个值得展示的答案,我不能出于良心使用
$wpdb
对象。因此,我将用PDO展示这个示例;你可以使用你选择的任何东西。现在我在我的桌面上而不是在iphone上,我也看到我关于
$\u POST['candidate\u choice']
的评论是错误的。我只是看不到它周围的所有东西,所以我的答案可能无法回答你的问题。不过我还是要试一试。