小编Wil*_*ase的帖子

在没有jquery的模糊下将文本添加到textarea的值

所以,我有一个记录评论的表格的textarea.我试图在输入时将输入评论的用户的身份附加到评论的末尾.

以下是检查用户会话并获取用户名称的PHP:

<?php 
    //getting username - displays John Doe
    $user = Mage::getSingleton('admin/session');
    $firstname = $user->getUser()->getFirstname();
    $lastname = $user->getUser()->getLastname();
    $append = " [name](by ".$firstname." ".$lastname.")[/name]";
?>
Run Code Online (Sandbox Code Playgroud)

应该附加到blur上的值的JavaScript:

<script>
    function addedcomment(){
        var commentby = document.getElementById("#history_comment").value;
        var commentby = commentby + '<?php echo $append; ?>';
        document.getElementById('#history_comment').value = commentby;
    }
</script>
Run Code Online (Sandbox Code Playgroud)

输入评论的文本区域:

<textarea name="history[comment]" rows="3" cols="5" style="height:6em; width:99%;" id="history_comment" onBlur="addedcomment()"></textarea>
Run Code Online (Sandbox Code Playgroud)

代码完全按照此处显示的顺序和方式显示在页面上,因此PHP在JavaScript出现之前设置$ append的值.我在dom控制台中遇到三个错误:

Uncaught TypeError: Cannot read property 'value' of null
addedcomment
onblur
Run Code Online (Sandbox Code Playgroud)

我正在使用的CMS与Prototype一起使用,因此即使在noConflict模式下,jQuery也不会一直工作(似乎它被选择性地调用).

我尝试过的事情:

Putting the JS below the textarea.
onblur vs onBlur
jQuery …
Run Code Online (Sandbox Code Playgroud)

html javascript php

1
推荐指数
1
解决办法
583
查看次数

为什么这个MySQL语句语法错误?

我使用预准备语句来处理传入的后期数据,清理数组,并插入MySQL数据库.

这是提交之前的SQL语句:

INSERT INTO LoggedCarts (Bill-Address1,Bill-Address2,Bill-City,Bill-Company,Bill-Country,Bill-Email,Bill-Firstname,Bill-Lastname,Bill-Name,Bill-Phone,Bill-State,Bill-Zip,Card-Expiry,Card-Name,Card-Number,Comments,Date,ID,IP,Item-Code-1,Item-Count,Item-Description-1,Item-Id-1,Item-Quantity-1,Item-Taxable-1,Item-Thumb-1,Item-Unit-Price-1,Item-Url-1,Numeric-Time,Ship-Address1,Ship-Address2,Ship-City,Ship-Company,Ship-Country,Ship-Email,Ship-Firstname,Ship-Lastname,Ship-Name,Ship-Phone,Ship-State,Ship-Zip,Shipping,Space-Id,Store-Id,Store-Name,Tax-Charge,Total) VALUES ("Pineapple Highway","","Orange","","US United States","casedilla@hotmail.com","Bob","Dole","Bob Dole","9075554509","CA","97056","","Check","NumberTemporarilyUnavailable","","Tue Dec 10 16:55:11 2013 GMT","yhst-130408242826480-485","50.78.241.193","TERRALUX-TT-5","1","Terralux TT-5 LED Tactical Flashlight 650 Lumens Uses 2 x CR123 or 1 x 18650","terralux-tt-5","3","YES","","112.49","http://www.batteryjunction.com/terralux-tt-5.html","1386694511","Pineapple Highway","","Orange","","US United States","casedilla@hotmail.com","Bob","Dole","Bob Dole","9075554509","CA","97056","Air (3-5 days)","","yhst-130408242826480","BatteryJunction.com","0.00","337.47")
Run Code Online (Sandbox Code Playgroud)

问题是,语法有什么问题?相同的代码也用于保存废弃购物车的不同表,并且写得很好.

注意:正如下面所指出的,在列名中使用连字符是不受欢迎的,因为它需要在提交查询之前进行特殊准备.在这个例子中,我将列名称与传入的post数据键数组匹配.我本可以通过清理关键阵列,删除连字符,这可能是另一种解决方案.

总而言之,如下所述,对于此SQL语句失败原因的问题的正确解决方案是在列名中使用特殊字符(连字符),从而导致需要在列名称周围使用反引号(backtick = `where where astrophe =')允许不间断地读取列名.

通过在PHPMyAdmin中测试原始语句来观察中断发生的位置:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-Address1,Bill-Address2,Bill-City,Bill-Company,Bill-Country,Bill-Email,Bill-Firs' at line 1
Run Code Online (Sandbox Code Playgroud)

确实给出了声明失败原因的线索.

谢谢你的帮助!

php mysql sql

0
推荐指数
1
解决办法
72
查看次数

标签 统计

php ×2

html ×1

javascript ×1

mysql ×1

sql ×1