小编fre*_*ent的帖子

为什么对于我动态添加到DOM的内容,coldfusion变量/参数是否有效?

我正在为Coldfusion网站苦苦挣扎,我必须重新设计:

在我的Jquery Mobile/Coldfusion8网站上,用户应该能够从几个不同的页面登录(每个页面都有自己的登录表单 - 不能改变它!)

当用户第一次进入index.cfm页面时,我正在运行:

 <!--- SESSION handler --->
 <cfif Session.loggedIn EQ "No">    
      <CFPARAM NAME="Attributes.Datasource">
      <CFPARAM NAME="Attributes.AdditionalText" DEFAULT="">
      ...
      <CFSET aform = "#CGI.SCRIPT_NAME#">
 </cfif>
Run Code Online (Sandbox Code Playgroud)

这是登录例程的一部分,并设置所有参数和变量.我没有错误,所以一切都一定没问题.该页面包含一个列表,其中包含一个项目:

 <li>#Attributes.AdditonalText"</li>
Run Code Online (Sandbox Code Playgroud)

和登录表格:

 <CFFORM ACTION="#aform#" NAME="LoginForm">
Run Code Online (Sandbox Code Playgroud)

此外,当没有定义会话时,我将重定向到index.cfm,因此所有用户都将在此页面上结束并获取其会话.

问题
当用户从index.cfm转到下一页时,Jquery Mobile将此页面添加到DOM(!).但是在index.cfm上有效的相同参数/变量现在会产生错误(两者都是未定义的).

我不明白这一点.在DOM规模上是不是可以访问Coldfusion参数/变量,所以我通过Ajax动态添加的任何东西,包括对这些参数/变量的引用也会起作用?

我有点迷失在这里做什么.Coldfusion也是新手.

如果我在index.cfm中有这个文本

这是#attributes.additionalText#

它可以工作,但如果我在第二个文件中有相同的片段,它被附加到DOM,完全相同的片段返回#attributes.additioanlText #not undefined ...

问题:
为什么我的动态添加到DOM的内容无法访问或未定义我的变量和属性?如何在全球范围内提供它们?

谢谢你的一些线索!

ajax coldfusion jquery coldfusion-8 jquery-mobile

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

为什么没有定义参数,如果我可以转储它并且它在Coldfusion中有值?

只是有点无能......使用Coldfusion8,如果我将会话转储到文件:

<cfdump output="D:\ColdFusion8\logs\dump.txt" var="#Session#">
Run Code Online (Sandbox Code Playgroud)

这包括:

accounttyp: whatever
Run Code Online (Sandbox Code Playgroud)

如果我只转储此参数,我得到相同的结果:

<cfdump output="D:\ColdFusion8\logs\dump.txt" var="#Session.accounttyp#">
Run Code Online (Sandbox Code Playgroud)

问题:
如果已定义并可转储,那么如何检查isdefined如下:

<cfdump output="D:\ColdFusion8\logs\dump.txt" var="#IsDefined(Session.accounttyp)#"> 
Run Code Online (Sandbox Code Playgroud)

原来是NO?如果它在那里它应该被定义,不应该吗?

谢谢你的澄清.

variables parameters coldfusion defined

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

使用MySQL LIKE的正确语法?

我有一堆LIKE状态查询.我想optizimze /解释查询,运行正常.但是,如果我复制这个:

 SELECT a.*, p.ek, p.vk, p.waehrung, p.onlinepreis
     FROM arts a USE INDEX (i_aktiv, i_iln, i_marke )
         LEFT JOIN pls p ON 
           p.iln = a.iln  
         LEFT JOIN fbs zu 
           ON a.farbe = zu.farbe 
           WHERE a.aktiv = "ja"
           AND (
       a.artikelbezeichnung LIKE ? 
    OR a.artikelbezeichnung_lang LIKE ? 
            OR (   a.farbe LIKE '%decke%'
                 OR zu.systemfarbe LIKE '%decke%'
                 OR zu.systemfarbe_en LIKE '%decke%' 
                 )
                                ) 
            )
         ...
Run Code Online (Sandbox Code Playgroud)

作为我想要添加的参数,'%decke%'但MySQL不断抛出错误,如果我使用的话%%.

知道我做错了什么吗?

我得到的错误是:

你的SQL语法有错误....在OR附近检查...%'%'decke%'(a.farbe LIKE'%decke%'...

mysql select sql-like

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

我可以将Coldfusions cffile action ="upload"与图像目标网址一起使用吗?

在更改文件大小并将其存储到服务器之前,我需要循环遍历路径名和图像名称列表并验证文件是否存在并且是jpg/png.

我想用这个:

   <cffile result="upload" action="upload" accept="image/jpeg, image/png" destination="#tempDirectory#" nameconflict="overwrite" />
    <cfset testFilePath = tempDirectory & upload.serverFile>
    <cfimage name="tempFile" action="read" source="#testFilePath#" />
    <cfif NOT isImageFile( testFilePath ) >
        <cfset fileDelete( testFilePath ) />
        <cfthrow type="FileNotFound" message="#tx_settings_icons_error_img#" />
    <cfelseif NOT listfindnocase(allow, upload.serverfileext) >
        <cfset fileDelete( testFilePath ) />
        <cfthrow type="FileNotFound" message="#tx_settings_icons_error_file#" />
    </cfif>
Run Code Online (Sandbox Code Playgroud)

但我的问题是,我不知道如何从路径上传文件

 http://www.some.com/folder/image.jpg
Run Code Online (Sandbox Code Playgroud)

问题:
我可以只是read图像,执行验证然后存储到磁盘,还是我需要先上传图像.我将不得不遍历500个图像的列表,我cffile action="read"不应该使用大文件.检查图像文件的正确类型isImage和文件扩展名的替代方法是什么?

coldfusion verification file-upload cffile

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

为什么排序在MySQL中有效但在Coldfusion结果集中没有?

我正在运行Coldfusion8/MySQL 5.0.88并进行搜索,其结果需要ASC/DESC根据用户设置进行排序.

如果我在MySQL中运行此查询,它的工作原理:

  SELECT a.*
  FROM artikelstammdaten a
        WHERE a.aktiv = "ja"
        AND a.firma LIKE '%test_comp%' 
  GROUP BY a.iln, a.artikelnummer, a.preis_aktuell, a.artikelbezeichnung
  HAVING sum(a.bestand) != 0 OR (a.nos = "ja" AND a.nos_anzeige = "ja")

  ORDER BY a.preis_aktuell ASC
  LIMIT 0, 24
Run Code Online (Sandbox Code Playgroud)

这会产生在MySQL中运行的预期结果.但如果我在Coldfusion中这样做:

 <cfquery datasource="db" name="results">
      SELECT a.*
           FROM artikelstammdaten a
           WHERE a.aktiv = "ja"
<cfif LOCAL.search.s_firma neq "" AND LOCAL.search.s_firma neq "Default">
           AND a.firma LIKE <cfqueryparam value="%#LOCAL.search.s_firma#%" cfsqltype="cf_sql_varchar">
    </cfif>
      GROUP BY a.iln, a.artikelnummer, a.preis_aktuell, a.artikelbezeichnung
      HAVING …
Run Code Online (Sandbox Code Playgroud)

mysql sorting coldfusion

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

如何从循环中删除一个函数,使其与JSLint兼容?

我正在尝试制作插件JSLint证明,并且正在努力解决以下错误消息:

Don't make functions within a loop.
Run Code Online (Sandbox Code Playgroud)

抱怨这个片段:

 for ( i = 0; i < pops.length; i++){
    pops.eq(i)
        .addClass('reverse out '+trans)
        .hide('fast')
        .removeClass('ui-panel-active')
        .find(".ui-page-active")
           .not("div:jqmData(show='first')")
           .removeClass('ui-page-active').end()
        .find(".ui-btn-active")
           .removeClass('ui-btn-active').end()
        .find('div:jqmData(external-page="true")')
           .remove().end().end()
           .delay(350)
           // the problem
           .queue(function(next){
               $(this).removeClass('reverse out pop slide');
                 next();
                 });

            ...
        }
Run Code Online (Sandbox Code Playgroud)

我理解问题出在哪里,但不知道如何使它符合JSlint标准.

问题:
如何使函数脱离循环?

谢谢!

javascript loops jslint

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

如何将变量作为键传递给javascript unshift/push?

我正在尝试在unshift()调用中设置变量名称,如下所示:

var new_index_name = priv.indices[i]["name"], // e.g. "container"
    new_index_array.unshift({new_index_name :[]});
Run Code Online (Sandbox Code Playgroud)

但我的new_index_array现在将包含:

[ {new_index_name : []} ]
Run Code Online (Sandbox Code Playgroud)

代替

[ {"container" : []} ]
Run Code Online (Sandbox Code Playgroud)

问题:
是否可以将变量名称作为keypush/unshift调用中的值传递?

感谢帮助!

javascript arrays jquery

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

如何在Coldfusion中写入数据库时​​防止字段长度错误破坏脚本?

我正在尝试在我的数据库中创建CSV导入(使用Coldfusion8).

首先将CSV文件解析为Coldfusion数组("x"使用此UDF完成),然后我将其提供到临时表中进行验证,然后使用要导入CSV列的JSON映射将其实际提交到数据库.

一切都工作正常,除了字段长度......仍然会出错.

现在我像这样导入:

...
<cfif variables.c_comp NEQ "">
, <cfqueryparam value = "#x[variables.c_comp]#" cfsqltype="cf_sql_varchar" maxlength="50">
</cfif>
...
Run Code Online (Sandbox Code Playgroud)

x是正在分析的CSV-行和variables.c_comp是指定字段的JSON地图列数.

我的问题是,如果用户提交长度为51个字符的字段,则整个导入失败.

问题:
有没有办法导入前50个字符而不是抛出错误?或者也许只设置一个标志.

感谢您的投入!

mysql csv import coldfusion insert

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

为什么反序列化不会在Coldfusion中将JSON字符串转换为struct或array?

我正在尝试反序列化JSON字符串Coldfusion8.它似乎工作(没有错误),但我无法处理我得到的数据.

我的JSON字符串如下所示:

"{\"kundenliste\":{\"kundennummer\":\"1\",\"plz\":\"2\",\"rabatt\":\"3\",\"laenderkennzeichen\":\"4\",\"preisliste\":\"5\...
Run Code Online (Sandbox Code Playgroud)

我可以做这个:

<cfset variables.import = DeserializeJSON(getModus.myJSONstring)>
<cfdump output="e:\dump.txt" label="catch" var="#IsArray(variables.import)#">
<cfdump output="e:\dump.txt" label="catch" var="#IsStruct(variables.import)#">
<cfdump output="e:\dump.txt" label="catch" var="#IsObject(variables.import)#">
<cfdump output="e:\dump.txt" label="catch" var="#IsDefined(variables.import.kundenliste)#">
Run Code Online (Sandbox Code Playgroud)

结果是:

{"kundenliste":{"kundennummer":"1","plz":"2","rabatt":"3","laenderkennzeich ...
NO
NO
NO
<<error>>
Run Code Online (Sandbox Code Playgroud)

问题:
反序列化时我做错了吗?我以为这将返回一个结构或数组,而不是一个字符串.该怎么办?

感谢帮助!

arrays coldfusion serialization json struct

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

为什么使用setTimeout的同步代码在JavaScript中表现异步?

我试图在测试中循环10次(等待条件为真),但不知怎的,它不起作用.

这是我有的:

// my counter
$.testHelper.countDown = function(test, iteration) {
    var ticker = iteration || 0;
    if (ticker > 10) {
      return false;
     }
    window.setTimeout(function() {
        if (test === true) {
            console.log("SENDING");
            return true;
        }
        ticker += 1;
        $.testHelper.countDown(test, ticker);
     }, 1000);
    };

    // my test     
    $.testHelper.testForElement = function(element) {
        var result;   
        console.log($i.find(element).length > 0); // true
        result = $.testHelper.countDown(
             $i.find(element).length > 0
        );
        console.log(result);  // undefined
        return result;
     };
Run Code Online (Sandbox Code Playgroud)

我的问题是虽然我的条件相当于true我打电话倒计时之前,但是来自countDown的答案是undefined.所以我的日志是这样的:

// true - before firing …
Run Code Online (Sandbox Code Playgroud)

javascript jquery timeout qunit jquery-mobile

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