0

我的目标是使用 jquery 将按钮 id 提交到数据库中,我只对按钮感兴趣而不是它的值。

$("#button").click(function() {
    var p = $(this).attr("id");

    $.ajax({
        type: "POST",
        url: "subpage.php",
        data: 'b=' + p,
        cache: false,
        success: function(html) {
            //process live
        }
    });
    return false;
});

子页面.php

$item = $_POST['b'];
$query = mysql_query("SELECT * FROM table WHERE  id = '25' AND bttnid = '$item'");
if(count($query)==0){
    mysql_query("INSERT INTO table VALUES ('','25','$item') ");
}

它不提交。请协助

4

4 回答 4

0

问题不在 jquery 中,问题出在 php 语句中.. 已更改

if(count($query)==0){/../} 

if(mysql_num_rows($query)==0){/../} and it works.
于 2012-06-01T16:57:18.910 回答
0

count($query)是错的。您需要使用mysql_num_rows($query)来获取返回的行数。

除此之外,使用{b: p}fordata代替字符串,以便 jQuery 正确编码p(即使在这种特殊情况下很可能不需要,因为 ID 不应该包含任何特殊字符)。

于 2012-06-01T16:50:54.443 回答
0

修复报价并像这样,

$.ajax({
  type: "POST",
  url: "subpage.php",
  data: {b: p},
  cache: false,
  success: function(html)
  {
    //process live

  }
 });

让jQuery处理urlencoding数据对象

于 2012-06-01T16:37:31.623 回答
0

这里只有 1 条建议:你绝对应该看看 jQuery API,它可能会给你正在寻找的答案:)

例如:(取自 .ajax() API 页面的示例)

var menuId = $("ul.nav").first().attr("id");
var request = $.ajax({
  url: "script.php",
  type: "POST",
  data: {id : menuId},
  dataType: "html"
});

request.done(function(msg) {
  $("#log").html( msg );
});

request.fail(function(jqXHR, textStatus) {
  alert( "Request failed: " + textStatus );
});

您已经在这里获得了模板,剩下要做的就是将原始值修改为您的 Web 应用程序的值。

链接:http ://api.jquery.com/jQuery.ajax/

于 2012-06-01T16:56:58.500 回答