2015-08-16 52 views
0

可能是初學者的錯誤,但我的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 colomn中沒有這樣的值(在'Y國'有一個值'Company')。

是否$ _POST自動刪除部分值或者我在這裏錯過了其他的東西?

謝謝!

+1

值缺少引號:'回聲 「<期權價值=」「 $行[ 」COMPANY_NAME「]」。「 >「。 $行[ 「COMPANY_NAME」。 「」;' – 2015-08-16 01:58:29

+0

謝謝,解決了! – dathiezer

+1

您應該使用數據庫結果的'ID'作爲'values'。 – CodeGodie

回答

1

您的選項值未被正確包含,因此瀏覽器爲什麼只取出字符串的第一個單詞。

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

您需要封閉期權價值,像這樣:

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