Php 如何修改下拉菜单中选定行的SQL数据?
我开始学习PHP,我的任务是创建一个表单,用户可以使用该表单选择一个类别(MySQL数据库表中的一行)并更新该行中特定列的内容 这就是它看起来的样子。是MySQL中的表的样子(tva是我想要更新内容的列) 下面是代码的样子:Php 如何修改下拉菜单中选定行的SQL数据?,php,sql,text,input,types,Php,Sql,Text,Input,Types,我开始学习PHP,我的任务是创建一个表单,用户可以使用该表单选择一个类别(MySQL数据库表中的一行)并更新该行中特定列的内容 这就是它看起来的样子。是MySQL中的表的样子(tva是我想要更新内容的列) 下面是代码的样子: 修改以下各项的TVA: 请试试这个 <tr> <td>Modify the TVA of : </td> <td> <select name="tva_modif" id
修改以下各项的TVA:
请试试这个
<tr>
<td>Modify the TVA of : </td>
<td>
<select name="tva_modif" id="ss1">
<?
$sql_tva_modif = "SELECT id_type, nom_fr,tva
FROM type
ORDER BY nom_fr
;";
$sql_tva_modif_result = mysql_query($sql_tva_modif);
while($val_tva_modif = mysql_fetch_array($sql_tva_modif_result))
{
echo "<option value='" . $val_tva_modif["id_categorie"] . "'>" . $val_tva_modif["nom_fr"] . "</option>";
}
?>
</select>
<input name="tva_val" id="tva_val" type="text" value=""></div>
</td>
</tr>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$('#ss1').change(function(){
var selected_item = $(this).val()
if(selected_item ){
$('#tva_val').val(selected_item).addClass('hidden');
// $('#tva_val').val("").removeClass('hidden');
}else{
$('#tva_val').val("").removeClass('hidden');
}
});
</script>
修改以下各项的TVA:
您使用的是在select查询中未提及的id\u分类字段
<?php
$sql_tva_modif = "SELECT id_type, nom_fr,tva
FROM type
ORDER BY nom_fr
;";
$sql_tva_modif_result = mysql_query($sql_tva_modif);
?>
<tr>
<td>Modify the TVA of : </td>
<td>
<select name="tva_modif" id="tva_modif">
<?php
while($val_tva_modif = mysql_fetch_array($sql_tva_modif_result))
{
echo "<option value='" . $val_tva_modif["id_type"] . "' id='" . $val_tva_modif["tva"] . "' >" . $val_tva_modif["nom_fr"] . "</option>";
}
?>
</select>
<input name="tva_val" id="tva_val" type="text" value=""></div>
</td>
</tr>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$('#tva_modif').change(function()
{
var id = $(this).children(":selected").attr("id");
if(id != ""){
$('#tva_val').val(id);
}
else
{
$('#tva_val').val('');
}
});
</script>
修改以下各项的TVA:
要更新输入内容,您必须添加一点Javascript(我建议您在
中添加一个ID,例如“vat_select”)
document.getElementById(“vat_select”).onchange=function(){
document.getElementById(“tva_val”).value=this.options[this.selectedIndex].value;
}
小心,我相信您的选择有错误,您也需要选择“id\u categorie”
,否则您的选项值将为空
要更新表中的数据(无论是哪一个),我建议您查看。
您应该用“mysqli”修改以“mysql”开头的指令(同时在PHP中激活mysqli),因为它们已被弃用
附注:VAT是TVA的英文名称。我想这就是您需要的:
<?php
if(isset($_POST["submit_tva"])){
$id_type_and_tva_array = explode("_", $_POST["tva_modif"]);
$sql_query = "UPDATE table_name SET tva='".$_POST["tva_val"]."' WHERE id_type='".$id_type_and_tva_array[0]."'";
mysql_query($sql_query);
}
?>
<form method="post">
<table>
<tr>
<td>Modify the TVA of : </td>
<td>
<select name="tva_modif" id="tva_modif">
<?
$sql_tva_modif = "SELECT id_type, nom_fr,tva
FROM type
ORDER BY nom_fr
;";
$sql_tva_modif_result = mysql_query($sql_tva_modif);
while($val_tva_modif = mysql_fetch_array($sql_tva_modif_result))
{
echo "<option value='" . $val_tva_modif["id_type"] . "_".$val_tva_modif["tva"]."'>" . $val_tva_modif["nom_fr"] . "</option>";
}
$val_tva_modif = mysql_fetch_array($sql_tva_modif_result)
?>
</select>
<input name="tva_val" id="tva_val" type="text" value="<?php echo $val_tva_modif["tva"]; ?>"></div>
</td>
<td><input type="submit" name="submit_tva" type="text" value="Update"></td>
</tr>
</table>
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$('#tva_modif').change(function()
{
var id_type_and_tva = $("tva_modif").val();
var id_type_and_tva_array = id_type_and_tva.split("_");
var tva = id_type_and_tva_array[1];
$("#tva_val").val(tva);
});
</script>
表中显示的字段&表中根本没有使用不同ie id\u categorie的名称。是的,对不起,我打错了是的,真的很抱歉,我给错了字段名谢谢,我快到了。只有一个小问题,输入类型文本字段显示“id_type”值而不是“tva”。有没有办法改变这一点?当页面新加载时,第一个值如何?现在你说的是,如果你不先选择另一种类型,它就不会加载。我说的是代码改进,这不是一个参数。希望你能理解。谢谢你的回答!我试过了,但它使输入类型的文本字段消失了。@Lightsplasher:请参考链接,它对我的工作已经没有问题了,我让它工作了。非常感谢你!谢谢你的帮助!是否有方法显示所选选项的相应tva值?我需要它对用户可见。现在我不明白了。我们这里需要javascript吗?数据需要放在数据库ryt中吗?我们可以通过使用ajax或其他直接php调用表单提交ryt来实现这一点?您要求“有人能告诉我如何确保输入类型文本字段显示所选选项的TVA值吗”是的,我们当然需要js或jquery。但当我问你时,我只是想到了更新,而不是选择组合框和文本字段映射,这只是一个困惑的问题。我的问题是澄清到底需要什么,而不是争论。我不是在争论,我只是把你的问题指给你看,别担心,伙计;)
<?php
if(isset($_POST["submit_tva"])){
$id_type_and_tva_array = explode("_", $_POST["tva_modif"]);
$sql_query = "UPDATE table_name SET tva='".$_POST["tva_val"]."' WHERE id_type='".$id_type_and_tva_array[0]."'";
mysql_query($sql_query);
}
?>
<form method="post">
<table>
<tr>
<td>Modify the TVA of : </td>
<td>
<select name="tva_modif" id="tva_modif">
<?
$sql_tva_modif = "SELECT id_type, nom_fr,tva
FROM type
ORDER BY nom_fr
;";
$sql_tva_modif_result = mysql_query($sql_tva_modif);
while($val_tva_modif = mysql_fetch_array($sql_tva_modif_result))
{
echo "<option value='" . $val_tva_modif["id_type"] . "_".$val_tva_modif["tva"]."'>" . $val_tva_modif["nom_fr"] . "</option>";
}
$val_tva_modif = mysql_fetch_array($sql_tva_modif_result)
?>
</select>
<input name="tva_val" id="tva_val" type="text" value="<?php echo $val_tva_modif["tva"]; ?>"></div>
</td>
<td><input type="submit" name="submit_tva" type="text" value="Update"></td>
</tr>
</table>
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$('#tva_modif').change(function()
{
var id_type_and_tva = $("tva_modif").val();
var id_type_and_tva_array = id_type_and_tva.split("_");
var tva = id_type_and_tva_array[1];
$("#tva_val").val(tva);
});
</script>