我有一个现有的网站,其中包含许多旧页面和表格,我正在尝试逐步过渡到CSS.我想使用Twitter Bootstrap样式表 - 特别是表单的样式 - 但仅限于我明确请求它们的页面部分.例如,我可能会在div中包围整个表单,如下所示:
<div class="bootstrap">
<!-- everything in here should have the Bootstrap CSS applied -->
<form>
<p><label for="text_input">Label</label><input type="text" id="text_input" /></p>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
我希望所有其他形式保持与现在相同,因为我无法同时更改所有形式.有一个简单的方法吗?我可以浏览Bootstrap CSS中的每一个样式并添加一个父选择器(例如'p'将成为'div.bootstrap p'),但这需要很长时间,并且很容易错过样式.
编辑:如果这样的事情不可能,有没有一个免费工具可以从文件中提取所有样式,添加前缀,然后再将它们保存回来?
我有一个包含可编辑和只读字段的表单,我希望使用Bootstrap进行样式设置.可编辑字段已正确对齐,但只读字段不正确,如此屏幕截图所示:
我正在使用的HTML是:
<form class="form-horizontal">
<div class="control-group">
<label class="control-label">Name</label>
<div class="controls">
John Smith
</div>
</div>
<div class="control-group">
<label class="control-label" for="date_of_birth">Date of Birth</label>
<div class="controls">
<input name="date_of_birth" id="date_of_birth" size="16" type="text" value="" />
<span class="help-inline">dd/mm/yyyy</span>
</div>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
我不想为无法编辑的字段显示只读输入,因为当用户无法在框中单击时会感到困惑/沮丧,这些是永远无法编辑的字段,因此它不会将它们显示为禁用/只读是非常有意义的.我只想要显示文本并与标签正确对齐.有没有办法可以通过在Bootstrap中使用某些东西或覆盖默认样式来实现这一点?
我的问题类似于这个问题,但没有回答(至少没有回答原问题),而且Bootstrap在过去的7个月里有多次发布,我认为如果发生任何变化,我将再次提出要求.
我正在构建一系列链接类,其实例我希望能够编组为XML,因此我可以将它们保存到文件中,稍后再读取它们.
目前我使用以下代码作为测试用例:
import javax.xml.bind.annotation.*;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import java.time.LocalDate;
public class LocalDateExample
{
@XmlRootElement
private static class WrapperTest {
public LocalDate startDate;
}
public static void main(String[] args) throws JAXBException
{
WrapperTest wt = new WrapperTest();
LocalDate ld = LocalDate.of(2016, 3, 1);
wt.startDate = ld;
marshall(wt);
}
public static void marshall(Object jaxbObject) throws JAXBException
{
JAXBContext context = JAXBContext.newInstance(jaxbObject.getClass());
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.marshal(jaxbObject, System.out);
}
}
Run Code Online (Sandbox Code Playgroud)
XML输出是:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<wrapperTest>
<startDate/>
</wrapperTest> …
Run Code Online (Sandbox Code Playgroud) 我一直在使用local :: lib来处理服务器上Perl模块的安装,这样我就可以在不污染系统安装的情况下为一些开发工作获得正确的版本.
但是,系统管理员最近将Perl从5.16升级到5.18,我现在遇到与二进制模块有关的错误,例如
perl -e 'use Scalar::Util'
Perl API version v5.16.0 of List::Util does not match v5.18.0 at /usr/lib64/perl5/5.18.2/XSLoader.pm line 92.
Compilation failed in require at /home/paul/perl5/lib/perl5/x86_64-linux/Scalar/Util.pm line 11.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
Run Code Online (Sandbox Code Playgroud)
我的理解是我可以通过强制local :: lib来重建它的所有模块来修复这个问题,但我在文档中找不到任何告诉我如何做到这一点的内容,甚至找不到如何获取所有模块的列表.使用local :: lib安装的模块(如果我在"每行一个模块"文本文件中有这个模块,我可以轻松编写一个Bash脚本来处理它).
这是可能的,还是我必须删除〜/ perl5目录并从头开始重新安装所有模块(可能会遗漏一些,因为我不记得它们全部)?
我正在尝试使用交叉编译器(GCC 4.9.2)进行以下简单的"Hello World"程序编译mips
:
#include <stdio.h>
int main()
{
int x = 5;
printf("x = %d\n", x);
}
Run Code Online (Sandbox Code Playgroud)
该x
变量用于阻止GCC更改printf
为puts
,它似乎自动为一个简单的换行终止字符串.
我已经构建了一个交叉编译器${HOME}/xc
并使用以下命令执行它:
${HOME}/xc/bin/mips-gcc -v hello.c
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
/tmp/ccW5mHJu.o: In function `main':
(.text+0x24): undefined reference to `printf'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
我假设这是链接器的一个问题,因为我希望该进程先前失败,例如stdio.h
在搜索路径上找不到.我可以编译一个简单的程序,只返回零,所以不是整个工具链被破坏的情况,大概只是标准的库链接(我使用的是newlib 2.2.0-1).
无论我是在Linux(Ubuntu 14.10)还是Cygwin(Windows 8)下运行交叉编译器,我都会得到同样的错误.
海湾合作委员会的全部产出是:
Using built-in specs.
COLLECT_GCC=/home/paul/xc/bin/mips-gcc
COLLECT_LTO_WRAPPER=/home/paul/xc/libexec/gcc/mips/4.9.2/lto-wrapper
Target: mips
Configured with: /home/paul/xc/mips/tmp/gcc-4.9.2/configure --prefix=/home/paul/xc --target=mips --enable-languages=c --with-newlib --without-isl --without-cloogs --disable-threads --disable-libssp --disable-libgomp --disable-libmudflap
Thread model: single …
Run Code Online (Sandbox Code Playgroud) 我正在尝试向REST Web服务发送一个简单的POST请求并打印响应(代码如下,主要来自Yahoo!开发人员文档和一些文档提供的MSDN代码片段).我希望客户发送:
请求方法:POST(即我希望PHP中的$ _SERVER ['REQUEST_METHOD'] =='POST')
数据:foo = bar(即PHP中的$ _POST ['foo'] =='bar')
但是,它似乎在发送:
请求方法:FOO = BARPOST
数据:(空白)
我知道API工作正如我用Python和PHP编写的客户端测试的那样,所以我很确定它一定是我的C#的问题.我不是一个交易的.NET程序员,所以会很感激任何关于如何弄清楚问题是什么的评论/指示 - 我确定这是微不足道的但我自己无法发现它.
uri,用户和密码变量在代码中设置得更早 - 它们可以正常使用GET请求.
request = (HttpWebRequest) WebRequest.Create(uri);
request.Credentials = new NetworkCredential(user, password);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/x-www-form-urlencoded";
string postData = "foo=bar";
request.ContentLength = postData.Length;
StreamWriter postStream = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII);
postStream.Write(postData);
postStream.Close();
response = (HttpWebResponse) request.GetResponse();
Run Code Online (Sandbox Code Playgroud)
REST API是用PHP编写的,当使用C#客户端时,$ _POST数组在服务器上是空的.
我在工作中运行的PHP站点出现问题,几分钟后用户正在注销(确切的时间有所不同,但它经常出现问题),无论他们是否积极使用该站点或不.
困难在于我无法重现这个问题,如果我使用相同的浏览器登录我不会被注销,这表明这不是网站完全被破坏的情况.不幸的是,我无法访问用户计算机来运行任何流量嗅探软件.
我已经检查的东西是:
PHP中的会话设置是Debian默认值,并且未在.htaccess文件或其他任何位置更改.主要是:
session.cookie_lifetime 0
session.gc_divisor 100
session.gc_maxlifetime 1440
session.gc_probability 0
session.save_handler files
session.save_path /var/lib/php5
session.use_cookies On
Run Code Online (Sandbox Code Playgroud)
Debian通过cron作业删除会话,而不是使用PHP的垃圾收集器,这就是为什么gc_probability被设置为0.我们运行的PHP版本是:PHP 5.2.6-1 + lenny13与Suhosin-Patch 0.9.6.2(cli) (Lenny的最新版本,我们很快就会升级到Squeeze,但我不认为这是导致问题的原因).
我们使用Zend_Session来管理会话,并在每个页面上创建一次Zend_Session_Namespace实例,从而自动调用session_start().通过在注销页面上调用Zend_Session :: destroy()来清除会话,因此用户应该注销的唯一方法是:
查看用户是否已登录的检查包括:
任何人都可以建议我可以试试的其他事情
编辑:我根据评论留下的一些额外的事情:
编辑2:基于人们提出的其他问题:
我有一个带有“名称”列 (VARCHAR(255)) 的 MySQL InnoDB 表,我希望用户能够搜索它,返回所有匹配的行。但是,我不能只使用 LIKE 查询,因为搜索需要允许用户输入与可用名称相似的名称(例如,以“The”为前缀,或者不知道正确的名称包含撇号)。
两个例子是:
DB 中的名称:'Rose and Crown'
应该匹配的可能搜索示例:“Rose & Crown”、“Rose and Crown”、“rose and Crown”、“The Rose and Crown”
DB 中的名称:'Diver's Inn'
应该匹配的可能搜索示例:'Divers' Inn'、'The Diver's Inn'、'Divers Inn'
我还希望能够通过“最接近的匹配”相关性对结果进行排名,尽管我不确定如何做到这一点(也许是编辑距离?)。
该表不太可能超过几千行,因此不扩展到数百万行的方法是好的。一旦输入,给定行的名称值将不会改变,因此如果需要昂贵的索引操作,那不是问题。
是否有可以执行此任务的现有工具?我看过 Zend_Search_Lucence 但它似乎专注于文档,而我只对搜索单个列感兴趣。
编辑:在 SOUNDEX 搜索中,这不会产生我想要的结果。例如:
SELECT soundex( 'the rose & crown' ) AS soundex1, soundex( 'rose and crown' ) AS soundex2;
soundex1 soundex2
T6265 R253265
Run Code Online (Sandbox Code Playgroud)
解决方案:最后我使用了 Zend_Search_Lucence ,只是假装每个名字实际上都是一个文档,这似乎达到了我想要的结果。我猜它在某种程度上是全文搜索,即使每个字符串最多只有 3-4 个单词。
我有以下简单的程序,我正在使用它来刷新我对GDB的记忆(我多年没有触及).
#include <stdio.h>
int main()
{
int i;
for (i = 0; i < 10; i++)
{
printf("Hello World\n");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我用它编译gcc -g for-test.c -o for-test
.基于手册页,我不希望使用任何优化,因为我没有指定任何优化.
当我将其加载到GDB并运行时disassemble main
,i < 10
比较生成以下内容:
cmp DWORD PTR [rbp-0x4],0x9
jle 0x4004fe <main+10>
Run Code Online (Sandbox Code Playgroud)
这似乎已经有效地改变的比较i < 10
来i <= 9
.鉴于这些是整数比较,应该没有区别,但我想知道GCC是否有任何理由输出这个程序集,而不是与10进行比较并且如果小于(JL)则跳跃?
编辑:这是在具有64位处理器的计算机上,运行Ubuntu与GCC 4.6.3和GDB 7.4-2012.04.
我有一组用户记录(0索引,来自数据库查询),每个记录包含一个字段数组(按字段名称索引).例如:
Array
(
[0] => Array
(
[name] => Fred
[age] => 42
)
[1] => Array
(
[name] => Alice
[age] => 42
)
[2] => Array
(
[name] => Eve
[age] => 24
)
)
Run Code Online (Sandbox Code Playgroud)
在我的Twig模板中,我希望获得age
字段为42的所有用户,然后将name
这些用户的字段作为数组返回.然后,我可以传递该数组,join(<br>)
以便每行打印一个名称.
例如,如果年龄为42岁,我会期望Twig输出:
Fred<br>
Alice
Run Code Online (Sandbox Code Playgroud)
这可以在Twig开箱即用,还是我需要编写自定义过滤器?我不确定如何用几个词来描述我想要的东西,所以可能是其他人写了一个过滤器,但我找不到它通过搜索.
我有一个包含以下两个HTML元素的表单:
<input type="text" name="vrm" id="vrm" size="15" maxlength="15" value="" />
<input type="checkbox" id="foreign_registration" name="foreign_registration" value="yes" />
Run Code Online (Sandbox Code Playgroud)
和以下jQuery验证规则(使用此处的验证插件:http://bassistance.de/jquery-plugins/jquery-plugin-validation/):
vrm: {
remote: {
url: "/json/vrm-validate.php",
data: {
foreign_registration: function() {
return $('#foreign_registration').is(':checked');
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
远程脚本依赖于这两个字段,因为在文本字段上执行的验证取决于是否检查了外部注册.
问题是,如果我在文本字段中输入内容然后更改复选框,则不会重新运行验证规则.我认为这是因为验证规则仅附加到文本字段,因此只有在更改时它才会运行.
有没有办法说'这两个元素是相关的,所以如果它们中的任何一个改变假设应该再次检查文本字段规则'?我不想将任何验证规则附加到复选框,因为它不需要在客户端验证,并且远程脚本执行的验证规则太复杂,无法在jQuery中实现.
我有一个PDF文件(不是由我创建的 - 我无法控制设计等),它允许用户在Adobe Reader中填写一些表单字段并保存结果.我想使用以下步骤自动化填充字段的过程:
我很高兴使用PHP,Perl,Python或Java来执行步骤2-5(按优先级降序排列),但我使用的任何东西都必须在Linux下工作(即它不能依赖于仅在例如Windows).
最终的结果应是普通用户可以打开和打印,但不能修改(我敢肯定,高级用户可以找到一种方法,这样做,但我承认,我不能保证对修改完善的安全)的PDF文件.我不想改变PDF的结构,只是填充表单字段.
这样做有标准的软件吗?我已经看过FDF Toolkit的提及,但我不完全确定这是否是我想要的,以及它是否允许我之后锁定文件,以及我想做的是否适合EULA.
编辑:最后的答案是使用iText的(由Mark斯托勒的建议),但实现它作为一个Web服务,它允许你在表单字段名称和值和PDF文件的"样板"的数组通过.根据AGPL,Web服务将是开源的(并且在我编写之后可以在GitHub上获得),但是连接到它的任何东西都不一定是.
我有以下HTML块,用于从用户收集有关项目的信息作为表单的一部分:
<div class="clone_block">
Name: <input type="text" name="items[0][name]" /><br />
Amount: <input type="text" name="items[0][amount]" /><br />
<button class="delete">Delete</button>
</div>
Run Code Online (Sandbox Code Playgroud)
我可以克隆这个元素(如果用户想要添加另一个项目)并将它div.clone_block
放在DOM 的最后一个实例之后,一切正常,我也可以删除元素.但是,我最终得到了具有相同名称的多个文本输入实例,这意味着只有最后一个显示在POST请求中(之前的请求被覆盖).我想要做的是重新编号所有项目,以便第一个item[0]
,第二个是item[1]
等.
有没有办法在jQuery中执行此操作?以这种方式创建名称可以更容易地使用PHP处理POST数据,因此我不希望在可能的情况下更改命名方案.