我正在尝试使用通过post方法提交的数据库中的select提取数据来提交,我需要保持在同一页面上。
这是我尝试过的,我正在使用MySQL。
$sql = "SELECT * FROM `client` WHERE 1";
if ($result = mysqli_query($conn, $sql)) {
echo'<body>
<div><p> vue global des client </p></div>
<form action="#" method="post">
<select name = "Client">';
while ($row = mysqli_fetch_assoc($result)) {
echo "<option value = '" . $row['client_code'] . "'>" . $row['client_nom'] . "</option>";
}
echo '</select>
<button type="submit" name"submit"> Vue specifique </button>
</form><br>';
if (isset($_POST['submit'])) {
mysqli_free_result($conn);
$clientCode = $_POST['Client'];
echo "<p> You have selected :" .$clientCode."</p>";
$sql = "SELECT a.*, b.client_nom, c.site_nom, d.contenant_nom, e.transporteur_nom FROM `mouvement`a
left join `client` b on a.client_code = b.client_code
left join `siteprod` c on a.site_code = c.site_code
left join `contenant` d on a.contenant_code = d.contenant_code
left join `transporteur` e on a.transporteur_code = e.transporteur_code
WHERE a.client_code = $clientCode";
if ($result = mysqli_query($conn, $sql)) {
echo '<table border="1">';
echo "<tr><td>Code</td><td>Type</td><td>Date</td><td>Site de prod</td><td>Client</td><td>Contenant</td><td>Quantité</td><td>Transporteur</td></tr>";
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr><td>{$row["mouvement_code"]}</td><td>{$row["mouvement_type"]}</td><td>{$row["mouvement_date"]}</td><td>{$row["site_nom"]}</td><td>{$row["client_nom"]}</td><td>{$row["contenant_nom"]}</td><td>{$row["contenant_quantite"]}</td><td>{$row["transporteur_nom"]}</td></tr>\n";
}
echo '<br>';
mysqli_free_result($conn);
}
} else {
echo "<p>no submit</p>";
$sql = "SELECT a.*, b.client_nom, c.site_nom, d.contenant_nom, e.transporteur_nom FROM `mouvement`a
left join `client` b on a.client_code = b.client_code
left join `siteprod` c on a.site_code = c.site_code
left join `contenant` d on a.contenant_code = d.contenant_code
left join `transporteur` e on a.transporteur_code = e.transporteur_code
WHERE 1";
if ($result = mysqli_query($conn, $sql)) {
echo '<table border="1">';
echo "<tr><td>Code</td><td>Type</td><td>Date</td><td>Site de prod</td><td>Client</td><td>Contenant</td><td>Quantité</td><td>Transporteur</td></tr>";
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr><td>{$row["mouvement_code"]}</td><td>{$row["mouvement_type"]}</td><td>{$row["mouvement_date"]}</td><td>{$row["site_nom"]}</td><td>{$row["client_nom"]}</td><td>{$row["contenant_nom"]}</td><td>{$row["contenant_quantite"]}</td><td>{$row["transporteur_nom"]}</td></tr>\n";
}
echo '<br>';
mysqli_free_result($conn);
}
我每次都在其他情况下结束。我做错什么了吗?
答案 0 :(得分:1)
它总是在“ else”语句上结束的原因是因为您正在检查isset($ _ POST ['submit'])。当您在表单中使用类型为Submit的按钮时,它的作用类似于输入类型Submit,但不会将名称作为POST值发送。这意味着即使您将名称设置为在按钮上提交,$ _ POST ['submit']也不存在。
我建议尝试以下解决方案之一:
希望有帮助:)
答案 1 :(得分:1)
我们的代码中有错字。
替换此
<button type="submit" name"submit"> Vue specifique </button>
与
<button type="submit" name="submit"> Vue specifique </button>
答案 2 :(得分:-1)
将表单操作设置为:
<form action="/" method="post">
<input type="text" id="user_id" name="user_id">
<input type="submit" id="submit_form" name="submit_form" value="Submit">
</form>
在您的php文件的开头使用它。
<?php
if(isset($_POST['submit_form']) && $_POST['submit_form'] == "Submit" ){
$query = "SELECT * FROM users where id=".$_POST['user_id'];
if ($result = mysqli_query($conn, $query)) {
while ($row = mysqli_fetch_assoc($result)) {
echo "<pre>";
print_r($row);
echo "</pre>";
}
}
}
?>