私の問題は少しユニークなので、Web上のどこにでもソリューションを見つけることができません。PHPドロップダウンリストの選択された値がデータベースに挿入されていません
私は2つのラジオボタンであるDivision and Externalを作りました。クリックすると、Divisionラジオボタンがドロップダウンリストを表示し、Externalラジオボタンが入力テキストボックスを表示します。
これは私がHtmlで作成したコードです。
<html>
<head>
<title> Submit a Contract </title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript">
function ShowHideDiv() {
var client1 = document.getElementById("client1");
var client2 = document.getElementById("client2");
var division = document.getElementById("division");
var external = document.getElementById("external");
division.style.display = client1.checked ? "block" : "none";
external.style.display = client2.checked ? "block" : "none";
}
function showfield(name){
if(name=='Other')document.getElementById('div1').innerHTML='<input type="text" name="client_details" value="" />';
else document.getElementById('div1').innerHTML='';
}
</script>
</head>
<body>
<form method="post" action="" enctype="multipart/form-data">
<label for = "client1">
<input type="radio" name="client_type" id = "client1" value="Division" onclick="ShowHideDiv()"/> Division
</label>
<label for ="client2">
<input type="radio" name="client_type" id = "client2" value="External" onclick="ShowHideDiv()"/> External
</label>
<br><br>
<div id="division" style="display:none">
Division:
<select name="client_details" onchange="showfield(this.options[this.selectedIndex].value)">
<option value="">Choose Division...</option>
<option value="Distribution">Distribution</option>
<option value="Transmission">Transmission</option>
<option value="Generation">Generation</option>
<option value="Procument">Procument</option>
<option value="Other">Others</option>
</select>
<br><br>
<div id="div1"></div>
</div>
 
<div id="external" style="display:none">
External:
<input type="text" name="client_details" value=""/>
</div>
<br><br>
<input type="submit" name="submit" value="Submit"/>
</form>
</body>
</html>
これはPHPコードです。
<?php
require("config.php");
if(isset($_POST['submit']))
{
$client_type = isset($_POST ['client_type']) ? $_POST['client_type'] :null;
$client_details = isset($_POST ['client_details']) ? $_POST['client_details'] :null;
$sql = "SELECT * FROM contracts";
$query = "INSERT INTO contracts
(
`client_type`,
`client_details`) VALUES (
'$client_type',
'$client_details')" ;
if ($con->query($query) === TRUE)
{
echo "<br><br> New record created successfully";
echo $query;
}
else {
echo "Error: " . $query . "<br>" . $con->error;
}
$con->close();
}
?>
外部ラジオボタンと入力テキストボックスが正常にデータベースに挿入された値の両方として正常に動作しています。 区分の場合、除算値のみが挿入されます。
私は間違っていますか?
この ''テキストボックスにも同じ名前を付けました。名前を変更してもう一度確認してください。 –
私はすでにそれを前にしていましたが、それでも同じ結果を返しました – MechaMetalHead
'name =" client_details "の名前を変更して何が得られたか再度確認しますか? PHPファイルprint_r($ _ POST)の –