2017-06-15 106 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

現在檢查答案 –