尝试使用复选框将评论定义为私有或不私有。使用 AJAX 发布到 PHP MySQL

Posted

技术标签:

【中文标题】尝试使用复选框将评论定义为私有或不私有。使用 AJAX 发布到 PHP MySQL【英文标题】:Trying to use a checkbox to define a comment as private or not. Using AJAX to post to PHP MySQL 【发布时间】:2013-12-31 11:24:54 【问题描述】:

目前它返回一个[objectO 而不是一个YES 或No 值。目前我的复选框设置为长度为 3 的 VARCHAR,但我应该使用 TINYINT 还是 Boolean。如果是这样,我必须改变什么才能让它工作?任何帮助将非常感激。谢谢。

("#add").click(function() 
    var chkval = "";

    if($('#checkbox').is(':checked'))
        chkval  = "Yes";
     else 
        chkval = "No";
    

    //define ajax config object
    var ajaxOpts = 
        type: "post",
        url: "../controller/addComment.php",
        data: "&module_ass=" + $("#leaveComment").find("input").val() + "&comment_body=" +              $("#leaveComment").find("textarea").val() + "&private=" + $("#checkbox").val('chkval'),
        success: function(data)                

【问题讨论】:

请将您的代码放入 jsfiddle 【参考方案1】:

您正在设置chkval 的值,因此您需要稍后使用它:

("#add").click(function() 

                  var chkval = "";

                  if($('#checkbox').is(':checked'))
                    chkval  = "Yes";
                   else 
                    chkval = "No";
                  



                  //define ajax config object
                  var ajaxOpts = 
                    type: "post",
                    url: "../controller/addComment.php",
                    data: "&module_ass=" + $("#leaveComment").find("input").val() + "&comment_body=" +              $("#leaveComment").find("textarea").val() + "&private=" +chkval,
                    success: function(data)      ...

更新 这是完整的代码和jsfiddle here:

 $('#Volunteers').on('click','.accept', function(event)

   //if clickFlag = true then the button hasn't been clicked yet. 

    if(typeof this._clickFlag != 'undefined' && this._clickFlag)

       //alert if the button has been clicked once already
       alert("already accepted");

else

    //here I send some stuff to a database. I don't want to send it twice for the same 
    //row, which is why I need to prevent a double click
    alert('_clickFlag: '+this._clickFlag + ' First time processing!');
    this._clickFlag = true; 




);

【讨论】:

非常感谢,这解决了问题。 @user3036812 很高兴它修复了它,请不要忘记将其标记为解决方案。 工作正常,模块分配和文本区域异步工作,但是,检查的输入字段没有异步更新。有任何想法吗?这与我选择复选框的方式有关吗?这是一个 jsfiddle jsfiddle.net/QT84D @user3036812 发生了一些奇怪的事情似乎我的答案已经改变了?我还提供了一个我现在看不到的 jsfiddle...无论如何,请解释一下您要实现的目标,jsfiddle 不起作用,它没有指向您的服务器。【参考方案2】:

你应该可以简单地使用:

data: "&module_ass=" + $("#leaveComment").find("input").val() + "&comment_body=" +              $("#leaveComment").find("textarea").val() + "&private=" + chkval,

因为变量是在上面分配的。您可能还想研究使用简单的布尔值而不是字符串值“是”和“否”。

【讨论】:

以上是关于尝试使用复选框将评论定义为私有或不私有。使用 AJAX 发布到 PHP MySQL的主要内容,如果未能解决你的问题,请参考以下文章

将 Github 页面的 URL 更改为私有

在Fortran中,在扩展定义中,如何将公共过程设置为私有?

私有类变量的字段与属性[重复]

使用 protobuf-net 为 Windows 商店应用程序序列化私有成员

我啥时候在 Java 中使用包私有? [复制]

C#自定义getter / setter没有私有变量