使用onClick更新数据库

update DB with onClick

本文关键字:数据库 更新 onClick 使用      更新时间:2023-09-26

我尝试通过点击我的页面上的阅读按钮来更新我的pm中的消息状态。所以我在这个网站上找到了一些解决方案,但对我来说并不奏效。

我在HTML按钮之前使用这个ajax:

     <script type="text/javascript">
function setRead(){
      $.ajax({
        type: "POST",
        url: "update_pm_status.php",
        data: { name: $("select[name='gelesen']").val()},
        success:function( msg ) {
         alert( "Data Saved: " + msg );
        }
       });
  }
</script>

按钮样式CSS和使用它自己的javascript来切换内容(打开/关闭)所以我想通过打开消息

来更新状态
<span class="toggleOpen" onclick="setRead()"><input type="hidden" method="post" name="gelesen" value="<?php echo $row['id']; ?>">lesen</span>

包含的站点是

<?php
ini_set('include_path', 'inc');
    require("connect.php"); 
        {
                  $id = $_POST['id'];

            $sql = "UPDATE
                    PMS
                    SET
                    gelesen = 'yes'
                    WHERE id = '".mysql_real_escape_string($id)."' AND gelesen = 'no'";
                    mysql_query($sql) OR die("<pre>'n".$sql."</pre>'n".mysql_error());
        }

,但我总是得到未定义变量'id'的通知。我怎么能给这个变量包含的网站?


因为我要等8个小时才能回复,所以我编辑了我的帖子:

谢谢你的回答,但我仍然得到一个未定义的索引:名称的消息因此,变量不post到我的update_pm_status .php我已经更新了我的脚本如下:

<script type="text/javascript">

函数setRead () {. ajax({美元类型:"文章",url:"update_pm_status.php",数据:{id: $()定格("[name = ' gelesen ']").val ()},成功:function(MSG) {alert("Data Saved: " + msg);}});}

和update_pm_status.php修改为:

    ini_set('include_path', 'inc');
    require("connect.php"); 
            $id = $_POST['name'];
            $sql = "UPDATE
                    PMS
                    SET
                    gelesen = 'yes'
                    WHERE id = '".mysql_real_escape_string($id)."' AND gelesen = 'no'";
                    mysql_query($sql) OR die("<pre>'n".$sql."</pre>'n".mysql_error());

我也像这样改变了我的HTML,希望能使它工作。

<span class="toggleOpen" onclick="setRead()" input type="hidden" method="post" name="gelesen" value="<?php echo $row['id']; ?>">lesen</span>

看起来好像您正确地发送了id,但您将其发送为name。你想要更新你的JavaScript来传递你期望的键:值对,以及你在PHP中期望的键名。

     <script type="text/javascript">
        function setRead(){
          $.ajax({
            type: "POST",
            url: "update_pm_status.php",
            data: { id: $(this).children("[name='gelesen']").val()},
            success:function( msg ) {
              alert( "Data Saved: " + msg );
            }
          });
        }
     </script>

您将注意到,在AJAX请求的data: {}块中,我已将键:值对更新为id,而不是name。如果您在POST时将键命名为name,那么您需要更新PHP以查找它:

$id = $_POST['name'];

很抱歉回复晚了。我去上班了。我使用

<script type="text/javascript">
function setRead($id){
  $.ajax({
    type: "POST",
    url: "update_pm_status.php",
    data: { id: $id}
   });  }

和这样的HTML

onclick="setRead(this.id);

谢谢大家的帮助:)