抱歉如果这个解释不清楚,我也很难理解.如何使用PHP和Ajax将数组发送到Javascript?我正在使用Ajax来获取一系列照片,然后我希望<div>在我的页面上添加一个空白.
jQuery看起来如下:
$.ajax({
url: "<?php echo site_url('demo/getPhotos/'); ?>",
type: 'POST',
data: form_data,
success: function(data) {
alert(data);
}
Run Code Online (Sandbox Code Playgroud)
PHP函数getPhotos看起来像这样:
<?php
$photos = array();
foreach ($data as $photo) {
array_push($photos,$photo['source']);
}
// echo json_encode($photos); How should I be returning $photos?
Run Code Online (Sandbox Code Playgroud)
如果我只是echo $photos;将数据发送到成功回调,但它似乎没有可用的格式.
如果我var_dump($photos)在PHP中执行,结果看起来像:
array(4) {
[0]=>
string(14) "some_image.jpg"
[1]=>
string(14) "some_image.jpg"
[2]=>
string(14) "some_image.jpg"
[3]=>
string(14) "some_image.jpg"
}
Run Code Online (Sandbox Code Playgroud)
我尝试过各种各样的组合,json_encode但实际上我猜测并且不确定它背后的理论.在这种情况下,将数据从PHP传递到Javascript的最佳方法是什么?
我希望接收一个数组作为输入,从中过滤值,并输出另一个数组.该函数应循环到x迭代.
例如,如果我想输出输入中的所有值,我会使用:
<?php
$i=0;
foreach ($array as $data) {
if ($data['type'] != 'some_value') {
$formatted_array[$i] = $data;
$i++;
}
}
return $formatted_array;
Run Code Online (Sandbox Code Playgroud)
但如果$array有一个大的索引,那$formatted_array将比我需要的大.我尝试使用for具有多个条件的循环,但它似乎陷入无限循环.
我不是交易开发者,所以逻辑很难理解.我没有收到错误,因此很难理解我哪里出错了.
如何在数组结束或函数达到一定的迭代次数之前执行PHP循环?
我在我的页面上有一个链接的图像,当点击它时会加载一个Fancybox模式框.它成功完成了这项工作,但我希望视频能够自动播放.如果我将YouTube网址设置为autoplay=1,则隐藏的DIV会在页面加载时在后台播放.
// Here is the linked image
<a id="inline" href="#video"><img src="someimage.jpg" alt="Description" /></a>
// Here is the hidden DIV
<div style="display:none">
<div id="video">
<iframe title="YouTube video player" width="640" height="390" src="###YOUTUBE LINK###rel=0&hd=1&autoplay=0" frameborder="0"></iframe>
</div>
</div>
// Here is the script
<script type="text/javascript">
$("a#inline").fancybox({
'hideOnContentClick': true,
});
</script>
Run Code Online (Sandbox Code Playgroud)
我的猜测是我需要做一些Bind()事件和字符串替换来改变autoplay=0,autoplay=1但我尝试了一些变化没有任何成功
有什么想法吗?
使用jQuery SelectBox插件我正在尝试创建一个JSON对象,其外观如下所示,其中'value'和'name'是选择框的值对:
'Opt Group 1': {
'value': 'name',
'value': 'name',
'value': 'name',
'value': 'name',
'value': 'name'
},
Run Code Online (Sandbox Code Playgroud)
因此,当我遍历我的数据时,我将更多数据推送到数组的末尾.目前,要显示'name'唯一,我使用以下内容:
var jsonObj = [];
for(var i=0; i<data.length; i++){
jsonObj.push(data[i].name);
}
console.log(jsonObj);
Run Code Online (Sandbox Code Playgroud)
据我所知,JavaScript似乎不喜欢使用变量作为标识符,即我不能这样做: jsonObj.push({data[i].id:data[i].name});
我怎样才能创建我需要的那种JSON对象,以便根据需要使Select Box工作?
Tumblr的登录页面是许多人的灵感,作为一个业余爱好者开发者,我希望看到他们如何制作他们的登录表单.我拿走了多余的代码并提出了一个简化版本,如下所示:
<div id="login_form_container">
<form method="post" action="logged-in.html" id="login_form">
<div class="input_wrapper">
<label for="login_email">Email address</label>
<input type="text" name="email" id="login_email" value="">
</div>
<button type="submit"><span>Log In</span></button>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
看到我在其他页面上使用jQuery 1.3,我尝试使用以下内容来获得他们的好效果.这不是他们如何拥有它,而是一个非常简化的版本:
<script>
$("input#login_email").click(function () {
$(".input_wrapper").addClass("blurred filled");
});
$("input#login_email").blur(function () {
$(".input_wrapper").removeClass("blurred");
});
</script>
Run Code Online (Sandbox Code Playgroud)
当这是页面上唯一的代码时,这很好用,但是当我把它放在带有其他jQuery的页面时,它会返回一个错误:
Uncaught TypeError: Cannot call method 'click' of null
(anonymous function)
Run Code Online (Sandbox Code Playgroud)
无论是Chrome,Firefox还是Safari,它都是一样的,所以它显然只是我的代码.
有谁知道问题是什么?
我很困惑为什么代码在隔离中工作,但在与页面中的其他元素结合时却不能.这让我很难过.
正则表达式是我的好消息,任何人都可以帮助我从URL中隔离字符串吗?
我想从URL中获取页面名称,该URL可以从输入表单中以下列任何方式显示:
https://www.facebook.com/PAGENAME?sk=wall&filter=2
http://www.facebook.com/PAGENAME?sk=wall&filter=2
www.facebook.com/PAGENAME
facebook.com/PAGENAME?sk=wall
Run Code Online (Sandbox Code Playgroud)
... 等等.
我似乎无法找到一种方法来隔离字符串之后.com/但之前?(如果存在的话).它是preg_match,替换还是拆分?
如果有人可以推荐一个特别清晰和介绍性的正则表达式指南,他们发现有用,我们将不胜感激.
我为Facebook SDK找到的大多数示例和教程都是用于发布到用户帐户.
作为使用Facebook PHP SDK但不使用Javascript SDK的人,我找不到以下示例或教程:
在我的网站上,我不打算将信息发布到管理员的粉丝页面,而只是获取他们想要用于我的网站的页面的ID.感谢PHP SDK,我已经有了一种从管理员的粉丝页面中提取所需信息的方法.
有这样的指南吗?
facebook-page facebook-graph-api facebook-javascript-sdk facebook-php-sdk
jquery ×4
php ×3
javascript ×2
json ×2
ajax ×1
arrays ×1
fancybox ×1
for-loop ×1
foreach ×1
loops ×1
preg-match ×1
preg-replace ×1
regex ×1
replace ×1
while-loop ×1
youtube ×1