我有一个bog标准的登录表单 - 一个电子邮件文本字段,一个密码字段和一个使用HTML/jQuery的AIR项目的提交按钮.当我在表单上按Enter键时,整个表单的内容消失,但表单未提交.有谁知道这是否是一个Webkit问题(Adobe AIR使用Webkit for HTML),或者我是否已将事情搞砸了?
我试过了:
$('.input').keypress(function (e) {
if (e.which == 13) {
$('form#login').submit();
}
});
Run Code Online (Sandbox Code Playgroud)
但这既没有阻止清算行为,也没有提交表格.没有与表单相关的操作 - 这可能是问题吗?我可以在动作中加入javascript函数吗?
作为应用程序日志记录的一部分,我正在尝试打开本地文件,如果该文件尚不存在,则创建新文件.这就是我所拥有的:
$path = '/home/www/phpapp/logs/myawesome_logfile.txt';
$f = (file_exists($path))? fopen($path, "a+") : fopen($path, "w+");
fwrite($f, $msg);
fclose($f);
chmod($path, 0777);
Run Code Online (Sandbox Code Playgroud)
我已经仔细检查过了,/logs
目录是chmod 0777,我甚至已经采取了额外的步骤,将它变成了apache:apache for good measure.尽管如此,当脚本打开文件时,它会向我发出警告,指出文件不存在并且炸弹了.没有创建任何文件.
我是否需要禁止fopen()
警告才能创建文件?
我正在PHP应用程序中执行以下操作:
$source = '/home/user/file.ext';
$output_dir = $this->setOutputString();
chdir('/home/ben/xc/phplib/bgwatcher-2011a/a01/');
exec('php bin/createjob.php $source $output_dir', $output);
return $output[0];
Run Code Online (Sandbox Code Playgroud)
问题是:我可以控制$source
,但不是$output_dir
,这是一个传统的Windows文件系统,并且路径中有空格.一个例子$output_dir
是:
/home/vol1/district id/store id/this_is_the_file.html
Run Code Online (Sandbox Code Playgroud)
将输出字符串插入exec()
函数时,我尝试了两种方法:
addslashes($output_dir)
并'"' . $output_dir . '"'
转义整个输出字符串.在第一种情况下,路径连接到:
/home/vol1/districtthis_is_the_file.html
...第一个空格和文件名之间的所有内容都被删除了.在第二种情况下,exec()
似乎扔鞋并且没有正确执行 - 不幸的是,错误信息在机器中丢失 - 我可以提供它,如果它是绝对必要的,但我也在时间限制下找到解决方案.
这是什么解决方案?我sprintf()
是整个字符串exec()
吗?我很困惑为什么addslashes
不能正常工作以逃避空间,我认为它与exec()的清理有关,但我找不到任何备份它的文档.
更新:我已经尝试了escapeshellarg()和preg_replace()但没有成功.进一步思考这个问题,我是否需要双重逃避这条道路?还是逃避路径和命令?如果路径被exec()取消一次,并且在执行命令之前由PHP取消一次,那么我是否需要考虑这两个转义?或者这不是它的工作原理吗?
代码:
$('input.media-checkbox').live('click', function(e){
e.preventDefault();
var that = $(this);
if (that.attr('checked') == 'checked'){
var m = that.attr('media');
var mid = 'verify_' + m;
that.parents('div.state-container').find('ul.' + mid).remove();
that.attr('checked', false);
} else {
var url = AJAX_URL;
$.ajax({
type: 'GET',
url: url,
dataType: 'html',
success: function(data){
that.parents('li').siblings('li.verification').children('div.media-verification').append(data).fadeIn(500);
that.attr('checked', 'checked');
}
});
}
return false;
});
Run Code Online (Sandbox Code Playgroud)
我在一个表单中ajaxing,然后在相关的复选框上触发click事件到另一个部分的ajax,如果有必要的话.很好地插入表单,并触发单击事件,检查需要检查的框并触发第二个ajax,因为checked
复选框的属性最初是false
.
如果我取消其中一个盒子,我的奶酪是什么?尽管如此e.preventDefault()
,该checked
属性设置为false
在测试之前,因此该if
语句始终执行该else
语句.我也试过这个$.is(':checked')
,所以我完全不知所措.
看来unchecked - > checked状态读取原始状态,但是选中 - >未选中则不会.有帮助吗?
我正在将一个过时的旧GW-BASIC程序翻译成JavaScript,而且我遇到了一段令我难过的语法.注意(再次):完全不是我的代码,变量名称都是疯狂的,这就是为什么我首先移植它.
1380 Z = 1
1390 RATIO = FCO2 /(1-FCO2-10^REFFO2)
1400 AA =(1 - 2*RATIO*(100 / MIXRATIO - 1))/(1 + 2*(100 / MIXRATIO - 1))
1410 PART = LOG(1 - AA)- LOG(100 / MIXRATIO - 1)
1420 FOR I = 1 TO - 1 STEP -2
1430 H = I
1440 W = T + H
1450 GG = 62.110326# - .02144446#*W + 4.720326E-07*(W^ 2)+(- 4.5574288#)*(10^(- 12))*(W^ 3)- 7.343018200000001#*(10^(- 15))*(W^ 4)
1460 KK = EXP(- GG /(R*(W + 273.18)))
1470 …
Run Code Online (Sandbox Code Playgroud) 我在Adobe AIR工作,我有一个div列表,显示点击隐藏div中每个列表项的扩展信息 - 如下所示:
$(this).click(function(){
$(this).next('div.info').toggle();
});
Run Code Online (Sandbox Code Playgroud)
这会扩展整个应用程序的高度,所以最终,如果用户要扩展所有div,那么侧面会有一个滚动条.为了解决这个问题,我想调整窗口的高度(增长或缩小,取决于).我已经完成了所有代码,除了我无法弄清楚如何进入.toggle函数以找出将要应用的效果(隐藏或显示).将我的if()语句设置为关键字在info div的end-state上不起作用,因为它会在点击时立即评估div.
有没有办法知道在jQuery中应用了哪个.toggle所以我可以使用该状态更改来应用我的其他更改?
在尝试并且未能在临时Mac上为客户开发iPhone应用程序之后,我开始研究VMware Workstation以虚拟化OS X.我想知道是否有人找到了任何陷阱,或者是否整件事情都是行不通的.
为了记录,我有一个古老的条纹苹果标志我撬开了我的旧Apple IIe,并且粘贴在我的开发笔记本电脑的盖子上,这样我就能遵守OS X EULA的精神.
我为我的艺术家朋友创建了一个网站,她希望布局保持不变,但她也希望她制作的新画作能够混合到当前版面中.所以我在主画廊页面上有12个缩略图(thumb1 - thumb12),还有18个图像(img1 - img18)也可以放置
我想到的方法是创建一个包含所有图像的数组,随机化它,然后简单地刮掉前12个并将它们加载到拇指槽中.另一种方法是从阵列中随机选择12个图像.在第一种情况下,我找不到一种随机化数组元素的方法.在后一种情况下,除了使用第二个数组之外,我无法将我的大脑包围在如何防止图像加载多次,这看起来非常低效和可怕.
顺便说一句,我在Javascript中正在做所有这些.
我有一个Angular指令,用于创建手风琴<ol>
和<li>
元素,每个<li>
内容都包含在一个被转换的模板中.我需要触发一个方法来检查这些<li>
元素中是否有任何错误,然后打开那个手风琴,但是在转换元素之后我找不到触发方法的方法.
是否有正确计时的钩子或指令配置?
我有一个从数据库返回的数组,如下所示:
$data = array(201 => array('description' => blah, 'hours' => 0),
222 => array('description' => feh, 'hours' => 0);
Run Code Online (Sandbox Code Playgroud)
在下一段代码中,我正在使用a foreach
并检查另一个表中的键.如果下一个查询返回数据,我想用新的小时值更新该键的数组中的'hours'值:
foreach ($data as $row => $value){
$query = $db->query('SELECT * FROM t WHERE id=$row');
if ($result){
$value['hours'] = $result['hours'];
}
Run Code Online (Sandbox Code Playgroud)
一切都很好,除了我已经尝试了foreach循环的每个声明组合,但我不断得到错误,这$value['hours']
是一个无效的引用.我试过宣布$value[]
......但这也行不通.我不需要迭代,$value
所以不需要另一个foreach
循环.
当然,这比我的大脑感知更容易.
这是整个片段:
foreach($_gspec as $key => $value){
$sql = sprintf('SELECT * FROM List WHERE specialtyID=%s', $key);
$query = $db->query($sql);
if ($query->num_rows() !== 0){
$result = $query->row_array();
$value['hours'] = $result['hours']; …
Run Code Online (Sandbox Code Playgroud)