2017-06-15 22 views
0

我开始使用PHP,并且我的任务是创建一个表单,用户可以从中选择一个类别(MySQL数据库中的表中的一行)并更新该行中特定列的内容。如何修改下拉菜单中所选行的SQL数据?

Here是它的样子。 Here是什么在MySQL的表看起来像(TVA是,我希望更新的内容列)

下面是代码的样子:

<tr> 
 
    <td>Modify the TVA of : </td> 
 
    <td> 
 
    <select name="tva_modif"> 
 
    <? 
 
    $sql_tva_modif = "SELECT id_type, nom_fr,tva 
 
    \t \t \t \t FROM type 
 
    \t \t \t \t ORDER BY nom_fr 
 
    \t \t \t  ;"; 
 
    $sql_tva_modif_result = mysql_query($sql_tva_modif); 
 
    while($val_tva_modif = mysql_fetch_array($sql_tva_modif_result)) 
 
    { 
 
    \t echo "<option value='" . $val_tva_modif["id_type"] . "'>" . $val_tva_modif["nom_fr"] . "</option>"; 
 
    } 
 
    ?> 
 
    </select> 
 
    <input name="tva_val" id="tva_val" type="text" value=""></div> 
 
    </td> 
 
</tr>

如果可能的话,有人能解释我如何确保输入类型文本字段显示所选选项的TVA值,以及如何使该字段更新数据库中该列的内容?

+0

领域表现出表&U [R使用这里的名称R命名的不同即id_categorie是不存在的表在所有。 –

+0

是的,对不起,我错打了它 – Lightsplasher

回答

1

您正在使用id_categorie场未在选择查询

<?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> 
+0

确实,对不起,我给了它错误的字段名称 – Lightsplasher

+0

谢谢,我快到了。只有一点问题,输入类型文本字段显示“id_type”值而不是“tva”。有没有办法改变这个? – Lightsplasher

+0

我更新了我的代码,请检查 –

0

请试试这个

<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> 

请检查该链接JSDEMO

+0

谢谢你的回答!我尝试过,但它使输入类型文本字段消失。 – Lightsplasher

+0

@Lightsplasher:请引用它的链接工作 –

+0

这不再是一个问题了,我得到了它的工作。非常感谢你 ! – Lightsplasher

0

提到要更新您输入的内容,您必须添加一些Javascript(我建议你添加一个ID到你的<select>,比如“vat_select”),

<script> 
    document.getElementById("vat_select").onchange = function(){ 
     document.getElementById("tva_val").value = this.options[this.selectedIndex].value; 
    } 
</script> 

要小心,我相信你在SELECT中有错误,你也需要选择"id_categorie",否则你的选项值将是空的。

要更新表格中的数据(以其中任何一种为准),我建议您看看this。 你应该修改你的指令,以“mysqli”开头,(因为mysqli在PHP中激活),因为它们已被弃用。

PS:增值税是TVA的英语。

+0

我没有得到y我们是否需要javascript,数据需要放在数据库ryt中?我们可以通过使用ajax或另一种方式直接在表单提交ryt上调用php? –

+0

你问它“有人可以解释我如何确保输入类型文本字段显示所选选项的TVA值” –

+0

当然,我们需要js或jquery。但是当我问你我只想到更新,而不是选择组合框和文本字段映射只是一个混淆的问题。我的问题又一次是澄清究竟需要什么而不是争论。 –

0

我觉得这是你所需要的:

<?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> 
+0

谢谢你的帮助!有没有办法显示选定选项的相应tva值?我需要它为用户可见 – Lightsplasher

+0

是的,因为我们必须使用jquery –

+0

现在检查答案 –