gpt4 book ai didi

php $_POST 似乎删除了空格后的部分值

转载 作者:行者123 更新时间:2023-11-29 02:20:54 25 4
gpt4 key购买 nike

可能是初学者的错误,但我的 PHP $_POST 似乎删除了通过表单提交的部分值。

如果 $company_name 只是一个单词(没有空格),下面的代码就可以很好地工作,但是对于带有空格的值,它似乎不起作用...

我使用以下代码提交表单:

<form action='deletecompany.php' method='post'>
Company name:

<select name="company_name">

<?php
$sql = "SELECT company_name FROM company";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {

while($row = mysqli_fetch_assoc($result)) {
echo "<option value=".$row["company_name"].">" . $row["company_name"]. "</option>";
}
} else {
echo "The database does not include any countries.";
}

?>

</select>
<input type='submit'>

</form>

在下拉菜单中,值正确显示为(例如)“Y 国的公司”。

但是,当我随后在 deletecompany.php 文件中使用发布的值时,只有第一个词(“公司”)会出现。

我在 deletecompany.php 中使用以下代码:

if (isset($_POST["company_name"])){

// delete from database

$company_name = $_POST["company_name"];

$delete_company = "DELETE FROM company WHERE company_name='$company_name'";

if ($conn->query($delete_company) === TRUE) {
echo $company_name . " has been deleted successfully!";
} else {
echo "Error: " . $delete_company . "<br>" . $conn->error;
}

}

deletecompany.php 页面的输出将是“公司已成功删除!”但实际上没有公司被删除,因为在相关的 MYSQL 列中没有这样的值(有一个值 'Company in Country Y')。

$_POST 会自动删除部分值还是我在这里遗漏了其他内容?

谢谢!

最佳答案

您的选项值没有被正确括起来,因此浏览器只接受字符串的第一个单词。

echo "<option value=".$row["company_name"].">" . $row["company_name"]. "</option>";

您需要将选项值括起来,如下所示:

echo "<option value='".$row["company_name"]."'>" . $row["company_name"]. "</option>";

关于php $_POST 似乎删除了空格后的部分值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32031081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com