一开始,这可能已经在 SO 上发布或复制了,但老实说,我找不到可能满足我的要求或澄清我的困惑的答案,也许我太累了,找不到它,如果是这样,请给我链接,我将不胜感激。
我有一个为我的公司定制的 CMS,多年来我一直在修改和升级它,最近我决定花很多时间在上面(我知道那里有很多框架和 CMS,但这段代码是从从头开始,这是一个挑战,所以这就是原因)
假设我有一些包含特定数据的 html,我想将该数据插入到数据库中的一个表中
在那部分ajax做得很好
$.ajax({
type: "POST",
url: "requests/add-data.php",
data: dataString,
cache: false,
success: function(data){
/** Success response or append data **/
}
})
因此,在将值插入数据库后,我需要查询有关同一进程的一些附加信息,并且我需要为刚从数据库中提取的数据提供一种格式。 让我们举一个 html 格式的例子。
<div>
<ul>
<li>
<p>[title from x value on DB]</p>
<span>[other values retrieved from the same Query]</span>
<img src="[image retrieved]" />
</li>
</ul>
</div>
要点是文档中不存在 HTML 结构,我必须将它附加到文档中带有 x id 的某个 div。
通常我在我刚刚从 ajax 调用的 PHP 文件中构建 HTML 结构,并在 ajax 成功后附加该内容。
$("#target-element").append(data);
无论如何,问题是,这是一个好的做法吗?
如果不是,最好的方法是什么?在这种情况下你们有什么建议?
预先感谢您的回答。
最佳答案
如果您的 HTML 不是静态的,您当然必须生成它。
我也更喜欢在客户端 (Javascript) 上执行此操作。
如果你使用 jQuery,你可以这样做,例如:
var list = $('<ul/>').appendTo('#parentContainer');
for (var i = 0; i < n; i++) {
list.append(
'<li>' +
'<p>' + '[title from x value on DB]' + '</p>' +
'<span>' + '[other values retrieved from the same Query]' + '</span>' +
'<img src="' + '[image retrieved]' + '" />' +
'</li>'
);
}
更新 1: 上面的代码应该放在
success: function(data) {
/** Success response or append data **/
}
访问数据取决于服务器脚本响应的 MIME 类型;通常是 JSON;如果您没有在 ajax 调用中指定数据类型,则默认为“智能猜测”(请参阅 jquery ajax documentation 中的“数据类型”部分)。
但是,您可以从“数据”参数访问检索到的值。 例如:
[检索到的图像] 可以是例如 data.img_src ...
更新 2: 在服务器端,您可以不返回资源(结果集),但必须返回真实数据。
这里是一个 MySQL 的例子,但它可以很容易地推广......):
<?php
$resource = mysql_query("SELECT * FROM table WHERE id='$id'");
$results = array();
while($row = mysql_fetch_array($resource)) {
$results[] = array(
'title' => base64_decode($row['title']),
'otherValue' => $row['otherValue'],
'imgSrc' => $row['imgSrc']
);
}
$json = json_encode($results);
header('Content-Type: application/json');
print $json;
?>
关于php - 文档中 PHP + Ajax 之间加载数据时的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20571178/
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
在Cooper的书BeginningRuby中,第166页有一个我无法重现的示例。classSongincludeComparableattr_accessor:lengthdef(other)@lengthother.lengthenddefinitialize(song_name,length)@song_name=song_name@length=lengthendenda=Song.new('Rockaroundtheclock',143)b=Song.new('BohemianRhapsody',544)c=Song.new('MinuteWaltz',60)a.betwee
有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳
我正在检查一个Rails项目。在ERubyHTML模板页面上,我看到了这样几行:我不明白为什么不这样写:在这种情况下,||=和ifnil?有什么区别? 最佳答案 在这种特殊情况下没有区别,但可能是出于习惯。每当我看到nil?被使用时,它几乎总是使用不当。在Ruby中,很少有东西在逻辑上是假的,只有文字false和nil是。这意味着像if(!x.nil?)这样的代码几乎总是更好地表示为if(x)除非期望x可能是文字false。我会将其切换为||=false,因为它具有相同的结果,但这在很大程度上取决于偏好。唯一的缺点是赋值会在每次运行
rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送