2017-06-15 5 views
0

私はPHPで始まっています。ユーザーがカテゴリ(MySQLデータベース内のテーブルの行)を選択し、その行の特定の列の内容を更新するためのフォームを作成することが任されています。ドロップダウンメニューで選択した行のSQLデータを変更するにはどうすればよいですか?

Hereです。 Hereは(TVAは、私がコンテンツを更新したい列です)MySQLでのテーブルのように見えるものである。ここ

は、コードは次のようになります。

<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がid_categorieすなわち、異なるrをここで使用してrにおける全てのテーブルに存在しません。 –

+0

はい、申し訳ありませんが私はそれをミスタイプしました – Lightsplasher

答えて

1

あなたの入力の内容を更新するには、選択クエリ

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

ありがとう、私はほとんどそこにいます。少し問題がありますが、入力タイプのテキストフィールドには "tva"ではなく "id_type"の値が表示されます。これを変更する方法はありますか? – 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

で言及されていないid_categorieフィールドを使用している、このリンクをチェックしてくださいしてみてください、あなたJavascriptを少し追加する必要があります(<select>に「vat_select」などのIDを追加することをお勧めします)、

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

あなたのSELECTにエラーがあると思うので、"id_categorie"も選択する必要があります。そうしないと、オプション値は空になります。

テーブル内のデータを更新するには(いずれか該当するもの)thisをご覧ください。 "mysql"から "mysqli"(PHPでmysqliを有効にしている間)を使用することをお勧めします。

PS:VATはTVAの英語です。私は、これは何が必要だと思う

+0

私はここにjavascriptが必要なのですか?データはデータベースに格納する必要がありますか?我々はそれを行うことができますajaxを使用して、または他のフォームの提出の直接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

答えを今すぐ確認 –

関連する問題