如何使用AJAX更改存储在数据库中的<select>标记?

时间:2016-02-04 01:20:20

标签: php jquery mysql ajax

不幸的是,我还要问一个问题: 我想为我的CMS创建一个用户管理控件,我有一个表,它动态地显示数据库的所有用户及其角色。这很好用。 我还可以在更改内容时显示按钮(角色已更改或用户已删除)。但我的最后一个问题是,如何将更改存储到数据库中。 Google无法帮助我回答,如何获取.remove()行的ID来更新我的数据库。我的第二个问题是,我不知道为什么我的ajax不起作用,所以我无法获得&lt; select&gt;的更新值。标签。 我希望有人可以帮助我最终完成这个项目。 这是我的代码user.php &LT; PHP header('Content-Type:text / html; charset = UTF-8'); 包括( “db.php中”); 在session_start(); echo“&lt; link rel = \”stylesheet \“href = \”editor.css \“&gt;”; ?&GT; &LT; HTML&GT;     &LT; HEAD&GT;         &LT;标题&GT;&LT; /标题&GT;         &lt; script src =“https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js”&gt;&lt; / script&gt;     &LT; /头&GT;     &LT;身体GT; &LT; / HTML&GT; &LT; PHP     $ abfrage = mysql_query(“SELECT * FROM user ORDER BY id asc”);     // $ ergebnis = mysql_query($ abfrage)或die(mysql_error());     echo“&lt; table&gt;”;     回声 “&LT;字幕&GT; Mitglieder&LT峰; br&GT;&LT; /字幕&gt;” 中;     echo“&lt; table border = \”1 \“style = \”width:300px \“&gt;”;      echo“&lt; th&gt; ID&lt; / th&gt;         &LT的第i;姓名&LT; /第&GT;         &LT的第i; Vorname&LT; /第&GT;         &LT的第i;罗尔&LT; /第&GT;         &LT的第i; Funktionen&LT; /第&gt;“中;     //循环,um alle Nutzer zu identifizieren     while($ row = mysql_fetch_object($ abfrage)) {   echo“&lt; tr id = \”“。$ row-&gt; id。”\“&gt;”;   echo“&lt; td align = center&gt;”,$ row-&gt; id,“&lt; / td&gt;”;   echo“&lt; td align = center&gt;” ,$行向&GT;名称, “&LT; / TD&gt;” 中;   echo“&lt; td align = center&gt;”,$ row-&gt; Vorname,“&lt; / td&gt;”;   // Vorbelegung   echo“&lt; td align = center&gt;&lt; select onChange = \”saveChanges()\“id = \”selections \“&gt;&lt; option selected = \”selected \“&gt;”,$ row-&gt; Rolle , “&LT; /选项&gt;” 中;   // loop,um alle Rollen zu identifizieren。 AKTUELL:doppelte Rollen werden noch doppelt angezeigt。 Eventuell Rollen auslagern。   $ file = mysql_query(“SELECT Rolle FROM user WHERE 1”);     while($ role = mysql_fetch_row($ file))     {         if($ role [0]!= $ row-&gt; Rolle){               echo“&lt; option value =”。$ role [0]。“&gt;”,$ role [0],“&lt; / option&gt;”;         }     }   echo“&lt; / select&gt;&lt; / td&gt;”;   echo“&lt; td align = center&gt;&lt; button type = \”button \“onCLick = \”deleteUser(“。$ row-&gt; id。”)\“&gt;Löschen&lt; / button&gt;&lt; / td&gt; “; } echo“&lt; / table&gt;”; echo“&lt; button type = \”button \“style = \”display:none \“id = \”change \“onClick = \”saveChanges(“。$ row-&gt; id。”)\“&gt;Änderungen speichern&LT; /按钮&gt;“中; ?&GT; &LT; HTML&GT; &lt; script src =“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js”&gt;&lt; / script&gt;   &LT;脚本&GT;   // Hier wirddergewählte用户nur durch eine fadeOut动画ausgeblendet,abernichtgelöscht! Der Button zum Speichern wird sichtbar     function deleteUser(id){       $(“#”+ id).fadeOut(350,function(){       $(这)一个.remove();       $( “#变”)显示()。     });     }     function saveChanges(id){     $( “#变”)显示()。      $就({      url:'saveUserChanges.php',     类型:'POST',     数据:{     选择:$(“#selections”)。val(),     id:$(“#”+ id).val()     }     }); }   &LT; /脚本&GT; &LT; / HTML&GT; 我添加了AJAX的定义 这是我的saveUserChanges.php。   &LT; PHP 在session_start(); echo“&lt; link rel = \”stylesheet \“href = \”forms.css \“&gt;”; / ** 如果(!isset($ _ SESSION [ “用户名”])) {     echo“Bitte erst&lt; a href = \”login.html \“&gt; einloggen&lt; / a&gt;”;     出口; } ** / include(“db.php”); $ _SESSION [“id”] = $ _POST [“id”]; $ _SESSION [“rolle”] = $ _POST [“selections”]; $ sql =“UPDATE user SET Rolle ='”。$ _ SESSION [“rolle”]。“'                                         WHERE id ='“。$ _ SESSION [”id“]。”'“; $ update = mysql_query($ sql); ?&GT; 先感谢您! 不幸的是它不起作用。

1 个答案:

答案 0 :(得分:0)

您需要命名字段:

$.ajax({
    url: 'saveUserChanges.php',
    type: 'POST',
    data: {
        selections: $("#selections").val(),
        id: $("#"+id).val()
    }
});