【问题标题】:MySQL update PHP and JSMySQL 更新 PHP 和 JS
【发布时间】:2010-12-17 09:46:12
【问题描述】:

我的 change.php 页面中有以下代码:

$con = mysql_connect("localhost","root","root");
 if (!$con)
   {
    die('Could not connect: ' . mysql_error());
    }

  mysql_select_db("FACT", $con);


  if($_POST['isChecked']==1)  // SEE THIS LINE PLEASE
  {
  mysql_query("UPDATE Orc SET CON = 'CHECKED'
  WHERE UID = '1'");
   }
  else
   {
   mysql_query("UPDATE Orc SET CON = 'NO'
   WHERE UID = '1'");
   } 

  mysql_close($con);

这个页面是从我使用 jQuery 的 index.php 调用的,并且:

  $.post("test.php", { isChecked:$('#checkbox_id').attr('checked') } );

取消选中复选框几乎可以正常工作我仍然需要手动刷新页面以在数据库中进行更改,并且我无法将框更改回选中状态...

我被这个难住了,请帮忙。

【问题讨论】:

  • 你确定当用户点击复选框时这个 .post 被调用?
  • 这一定是因为如果 JS 不工作,数据库正在从“已检查”更新为“否”,我从未调用过 change.php 页面。还是不知道怎么调试js。

标签: php jquery mysql database


【解决方案1】:

Adam Heath 解决方案也可以,但我的做法如下:

  $.ajax({
    type : 'post',
    url : 'your url',
    data: {isChecked : $('#checkbox_id').attr('checked')},
    success: function(resultData) {
      //in your php script do all server side scripting and then
      //if your methods executed successfully return true otherwise return false
      if (resultData == true) {
         $('#checkbox_id').attr('checked', true);
      } else {
         $('#checkbox_id').attr('checked', false);
      }
    }
  });

【讨论】:

    【解决方案2】:

    为了在不刷新的情况下更新页面,您需要为 ajax 调用提供回调函数(调用成功完成时运行的代码)。 来自 jQuery 文档:

     $.post("test.php", { name: "John", time: "2pm" },
      function(data){
        alert("Data Loaded: " + data);
      });
    

    因此,您可以使用 jQueries DOM 操作来更改页面的某些部分,让 php 页面返回新数据以更新页面,或者如果您依赖数据库中的数据,则自动刷新。

    【讨论】:

      猜你喜欢
      • 2012-04-13
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-01
      • 2013-06-17
      相关资源
      最近更新 更多