2017-10-14 7 views
0

で別のテーブルから選択するドロップダウンを作成し、私はテーブルitems(表2)からの情報を持ってgetSelectedMember.phpという名前phpスクリプトへajax通話を開始します。 tabels、「編集」モーダルのために予め選択されたオプションの値

​​

このformulation_fkitemsformulationという名前の別のテーブル(表1)からの選択オプションの値です。

これは「个人设定」のコードです:

<form action=" " method="POST"> 
    <div> 
     <label>Name</label> 
     <input type="text"><br> 
    </div> 
    <div> 
     <label>Formulation</label> 
     <select id="editFormulation"> 
     </select> 
    </div> 
    <button type = "submit">Save changes</button> 
</form> 

私の質問は、単一の項目を更新しながら、どのように私は私の編集フォームを選択option value意志でformulationテーブルからselectオプションを渡すことができていますテーブルitemsformulation_fkになりますか?

そして、これが私のajax呼び出しです:私の質問の明確化のために

$.ajax({ 
    url: 'getSelectedMember.php', 
    type: 'post', 
    data: { 
    member_id: itemID 
    }, 
    dataType: 'json', 
    success: function(response) { 
    $("#editName").val(response.name); 
    $("#editFormulation").val(response.formulation_fk); 
    $(".editMemberModal").append(? ? ? ? ? ?) 
    } 
}); 

、アクションの流れはこのようになる、のは、それがWaterを編集するために考えてみましょう:

  1. の編集]ボタンをクリックしてください'水'。
  2. Ajaxはを呼び出してname(水)と formulation_fk(1)を取得します。応答に
  3. 、[名前]フィールドにはなり出力「水」 および製剤はoption value = “1”

formulationテーブルから意志の出力に以下この画像のようなものをドロップダウンselectを提出しました。 Result

私はしばらくそれを解決しようとしてきましたが、私は本当に提案や専門家の助けを感謝します。前もって感謝します。

+0

は何の 'のid = "editName'や 'ID =" editFormulationありません "とクエリエラー」edit.php''のHTMLで '。 – Barmar

+0

は、固定された"。そして、実際に、私は、に焦点を当てていますありがとうございます@Barmar – Ashonko

+0

まだAJAXの成功関数で更新しているIDは表示されません。 – Barmar

答えて

1

PHPコードでは、itemsテーブルのformulation_fkに加えて、すべての製剤の配列を返す必要があります。

$memberId = $_POST['member_id']; 

$sql = "SELECT * FROM items WHERE itemID = $memberId"; 
$query = $connect->query($sql); 
$result = $query->fetch_assoc(); 

$sql = "SELECT * FROM formulation"; 
$query = $connect->query($sql); 
$formulations = array(); 
while ($row = $query->fetch_assoc()) { 
    $formulations[] = $row; 
} 
$result['formulations'] = $formulations; 

echo json_encode($result); 

そして、AJAXコードは、その値を設定する前に<select>に記入することができます。

success: function(response) { 
    $("#editFormulation").empty(); // Clear out previous value 
    $.each(response.formulations, function() { 
     $("#editFormulation").append($("<option>", { 
      value: this.formulationID, 
      text: this.formulation_name 
     })); 
    }); 
    $("#editFormulation").val(response.valuation_fk); 
    $("#editName").val(response.name); 
} 
+0

ありがとうドロップダウンではオプションは返されません。なぜこれが起こっているかもしれないのか? – Ashonko

+0

プロパティ名が間違っています。今すぐ試してみてください。 – Barmar

+0

まだ電話の後から何も戻っていません。 – Ashonko

関連する問題