我有一个包含简历表的数据库,客户在其中写下了他的所有信息,例如(姓名、专业经验等...),在 html 页面上我有 3 个 div。
第 1 Div 将显示我计划使用 echo
$row=name
分隔的整个简历表格,使用每行下方的 <br>
将其分开并将其显示为真实的简历或可能是工作申请表。
第二部分仅包含已注册简历的姓名列表 因为我对 jQuery 或 js 知之甚少,所以我在每个名称下面使用了按钮,这样当单击时,它会将
$userform
变量与表上具有相同名称的行进行比较,并在第一个 div 上显示整行,将每行分隔开<br>
或 <p>
。
首先它将刷新第二个 div 上的列表:
<div class="content2">
<h3>LISTA DE CANDIDATOS:</h3>
<form class="btn" method="post">
<input type="submit" name="btn_search" value="Actualizar">
</form>
<br>
<?php if (isset($_POST["btn_search"])) {
$con = mysqli_connect("localhost","root","","chevron");
$q = "SELECT * FROM candidatos ORDER BY id DESC";
$result = mysqli_query($con,$q);
while ($row = mysqli_fetch_assoc($result)){
$userform = $row["nome"] ;
$_SESSION["userform"] = $userform;
echo " ".$row['sobrenome'].", ".$_SESSION['userform']." <br><br>"; ?>
<form class="btn" action="" method="post">
<input type="submit" name="post_form" value="Vizualizar CV">
</form>
<br>
<?php }
}
?>
</div>
在
mysqli_fetch_assoc
之后,我声明一个变量 $userform
等于行名称(在我的语言中表示名称),全局变量 $_SESSION['userform']
等于包含行名称的 $userform
变量。
现在第一个div:
<div class="content">
<br>
<div class="form_cand">
<br>
<?php if (isset($_POST["post_form"])) {
$con = mysqli_connect("localhost","root","","chevron");
$q = "SELECT * FROM candidatos WHERE nome = ".$_SESSION["userform"]." ";
$result = mysqli_query($con, $q);
if (!$result) {
echo "ERROR";
}
$row = mysqli_fetch_array($result);
echo "NOME: ".$row["nome"]."<br>";
echo "SOBRENOME: ".$row["sobrenome"]."<br>";
echo "MORADA: ".$row["morada"]."<br>";
echo "BI: ".$row["bi"]."<br>";
echo "EMAIL: ".$row["email"]."<br>";
echo "COMPETENCIAS: ".$row["competencias"]."<br>";
echo "IDIOMAS: ".$row["idiomas"]."<br>";
echo "OBJECTIVO: ".$row["objectivo"]."<br>";
}
?>
</div>
</div>
基于会话变量中的
$userform
变量,它应该找到与会话变量中的名称相同的名称并显示整行,但我不知道为什么它没有显示?
更新:
我完成了第一部分,谢谢您的帮助!现在我在 while 条件上添加了 2 个按钮和一个复选框,当数据发布时,按钮和复选框也会出现,一个是按钮是 DENY,另一个是 ACCEPT。
当我单击“拒绝”时,我希望它从该表中删除当前发布的信息并将其发送到另一个表,例如。可以是“DeniedCV´s”,而接受按钮实际上可以做同样的事情,但将其发送到“ACCEPTEDCV´s”表。
但是当单击“接受”按钮并选中复选框时,我希望它具有相同的功能,但这次也将数据发送到其他 2 个表。
这是我到目前为止所做的:
<div class="content">
<br>
<div class="form_cand">
<br>
<?php if (isset($_POST["post_form"])) {
$selectedUser = intval($_POST['users']); //pra selecionar o nome clicado na option list
if($selectedUser > 0){
$con = mysqli_connect("localhost","root","","chevron");
$q = "SELECT * FROM candidatos WHERE id = ".$selectedUser." ";
$result = mysqli_query($con, $q);
if (!$result) {
echo "ERROR";
}
$row = mysqli_fetch_array($result);
if(is_array($row) && count($row) > 0){
echo "<center><strong>CANDIDATO Nº.:</strong>".$row["id"]." <br><br><br></center>";
echo "<strong>NOME:</strong><br>".$row["nome"]."<br><br><br>";
echo "<strong>SOBRENOME:</strong><br> ".$row["sobrenome"]."<br><br><br>";
echo "<strong>MORADA:</strong><br> ".$row["morada"]."<br><br><br>";
echo "<strong>BI:</strong><br> ".$row["bi"]."<br><br><br>";
echo "<strong>EMAIL:</strong><br> ".$row["email"]."<br><br><br>";
echo "<strong>COMPETENCIAS:</strong><br> ".$row["competencias"]."<br><br><br>";
echo "<strong>IDIOMAS: </strong><br>".$row["idiomas"]."<br><br><br>";
echo "<strong>OBJECTIVO:</strong><br> ".$row["objectivo"]."<br>"; ?>
<center>
<form class="decisions" action="" method="post">
<p>
Se achar esta candidatura excepcional e quiser mostra-la ao ADMINISTRADOR marque a caixinha pequena que esta apos o botão qualificado!
</p>
<input type="submit" name="btn_deny" value="NÃO QUALIFICADO">
<!-- botao negar -->
<?php if (isset($_POST['btn_negar'])) {
$selectedUser = intval($_POST['users']);
if($selectedUser > 0){
$con = mysqli_connect("localhost","root","","chevron");
$q = "SELECT * FROM candidatos WHERE id = ".$selectedUser." ";
$result = mysqli_query($con, $q);
if (!$result) {
echo "ERROR";
}
$row = mysqli_fetch_array($result);
if(is_array($row) && count($row) > 0){
//I WANTED TO PUT ANOTHER $q = which inserts Into another table
//and then add another $q = which deletes it from the current table
} ?>
<!-- botao negar -->
<input type="submit" name="btn_aceitar" value="QUALIFICADO">
<!-- botao aceitar -->
<?php if (isset($_POST['btn_accept'])) {
} ?>
<!-- botao aceitar -->
<input type="checkbox" name="checkbox_recomend" value="Recomendar ao Administrador">
</form>
</center>
<?php }
}
}
?>
</div>
</div>
在 while 循环中,您正在创建具有相同按钮名称的多个表单,并且没有任何输入,只需打印出信息。
正确的方法是使用某种列表(例如选择下拉列表)并根据所选用户显示正确的信息: html 看起来像:
<form class="btn" action="" method="post">
<select name="users">
<?php while ($row = mysqli_fetch_assoc($result)){ ?>
<option value="<?php echo $row['id'] ?>">
<?php echo ' '.htmlspecialchars($row['sobrenome']).', '.htmlspecialchars($row['nome']) ?>
</option>
<?php } ?>
</select>
<input type="submit" name="post_form" value="Vizualizar CV" />
提交后:
<?php
if (isset($_POST["post_form"])) {
$selectedUser = intval($_POST['users']); // This is how we extract the chosen item from the drop-down
if($selectedUser > 0){
$con = mysqli_connect("localhost","root","","chevron");
$q = "SELECT * FROM candidatos WHERE id = ".$selectedUser." ";
$result = mysqli_query($con, $q);
if (!$result) {
echo "ERROR";
}
$row = mysqli_fetch_array($result);
if(is_array($row) && count($row) > 0){
echo "NOME: ".$row["nome"]."<br>";
echo "SOBRENOME: ".$row["sobrenome"]."<br>";
echo "MORADA: ".$row["morada"]."<br>";
echo "BI: ".$row["bi"]."<br>";
echo "EMAIL: ".$row["email"]."<br>";
echo "COMPETENCIAS: ".$row["competencias"]."<br>";
echo "IDIOMAS: ".$row["idiomas"]."<br>";
echo "OBJECTIVO: ".$row["objectivo"]."<br>";
}
}
}
?>
您不需要将信息存储在 $_SESSION 超全局中。通过表单传输数据时,最佳实践是使用 ID 而不是字符串。我们没有在选项值中使用名称,而是使用 id。
如果你想在不刷新的情况下实现同样的效果,那么你应该使用 AJAX
编辑:由于您请求了示例 AJAX 代码,请首先查看此答案。
您必须根据您的需要进行一些更改。首先添加以下javascript代码:
<script>
$('input[name="post_form"]').on('click',function(){
var chosenID = $('select[name="users"]').val();
if(chosenID > 0){
$.ajax({
url: 'yourfile.php?ID = ' + chosenID,
type: 'GET',
dataType: 'html',
success: function (data) {
$('#userData').html(data);
}
});
}
});
</script>
您还应该添加 div 元素:
<div id="userData"></div>
您现在要做的就是获取
yourfile.php
文件中的 ID,该文件位于 $_GET 超全局下,并重复我之前发布的 PHP 代码。