我在我的网站上使用PHP,MySQL,Smarty,jQuery,AJAX等.目前,我从MySQL数据库中获取大量数据(匹配问题ID),对其进行处理,将此数据分配给Smarty模板并将其打印在网页上.由于要获取的数据量太大而且正在进行进一步处理,因此获取最终输出数据需要花费太多时间.反过来,向用户显示整个数据需要花费太多时间.
我有一种方法,但无法实现它.我的方法是运行获取单个匹配question_id并同时将其显示到浏览器的两个过程,并重复此循环,直到获取并显示所有匹配的问题ID.当显示单行的加载数据时,加载器图像应显示在该显示的记录下.当所有数据都被打印出来时,加载器图像应该消失.
但我面临的主要问题是我应该如何继续将数据分配给Smarty模板并显示模板,因为Smarty模板引擎首先加载所有内容,并且只有在完全拥有将其打印到浏览器的内容之后.
为了您的参考,我将控制器,模型和视图中的所有现有代码放在下面:
Controller(match_question.php)的PHP代码如下:
<?php
require_once("../../includes/application-header.php");
$objQuestionMatch = new QuestionMatch();
$request = empty( $_GET ) ? $_POST : $_GET ;
if($request['subject_id']!="")
$subject_id = $request['subject_id'];
if($request['topic_id']!="")
$topic_id = $request['topic_id'];
if($subject_id !='' && $topic_id !='')
$all_match_questions = $objQuestionMatch->GetSimilarQuestionsBySubjectIdTopicId($subject_id, $topic_id);
$smarty->assign('all_match_questions', $all_match_questions);
$smarty->display("match-question.tpl")
?>
Run Code Online (Sandbox Code Playgroud)
Model(QuestionMatch.php)的PHP代码如下:
<?php
class QuestionMatch {
var $mError = "";
var $mCheck;
var $mDb;
var $mValidator;
var $mTopicId;
var $mTableName;
function __construct() {
global $gDb;
global $gFormValidation;
$this->mDb = $gDb;
$this->mValidator = $gFormValidation;
$this->mTableName = …Run Code Online (Sandbox Code Playgroud) 我是专业的PHP开发人员.所以,我对移动应用程序,iOS,Android等知识不太了解.所以,请尝试了解我.
我是一个由相应的开发团队使用iOS开发的应用程序.现在,我必须使用Pushwoosh为此应用程序提供推送通知.
我已经理解推送通知和Pushwoosh的用法是什么意思.此外,我可以使用从Pushwoosh控制面板获得的app_id和auth_key发送示例推送通知.当我从服务器运行相应的PHP文件时,我收到了正确的状态代码的"成功消息".
我的查询实际上是关于如何从服务器端角度将此推送通知服务实现到应用程序中?
现在,让我们考虑更有活力和实用的东西.
实际上MySQL数据库中有一个表包含通知.只要任何新条目插入该表,我就要检查它(通知)是否是登录用户.如果存在为登录用户生成的任何新通知,我将通过"Pushwoosh"将推送通知发送给相关用户到他/她的相应设备.
现在我的问题是,应该从应用程序端调用包含用于检查新通知并将其作为推送通知发送的代码的PHP文件,还是有其他方法?
换句话说,我的疑问是,应该仅在来自应用程序的请求时才检查新通知吗?
我与移动应用程序开发团队讨论了同样的问题,他们告诉我,我们不会向您发送任何类型的请求,您只需向我们发送推送通知.他们告诉我,推送通知的含义与app永远不会向服务器发送任何请求的含义相同,服务器本身应该在可用时将通知发送给应用程序.
那么在这种情况下,如果没有收到请求,那么包含代码的PHP文件应该如何执行呢?
这里的另一个问题是,如果应用程序不会向PHP文件发送任何请求,那么我应该如何知道哪个用户已登录并请求为他/她生成的新通知(如果有)?
假设,如果PHP文件的请求已经到来,那么我是否需要在PHP代码中为该特定用户进行基于令牌的身份验证,或者它将在应用程序端完成,并且只有在成功验证用户后才会将请求发送到PHP文件?
此外,每两分钟间隔(轮询)应检查新通知.应该从哪里进行检查?我的意思是PHP文件每隔两分钟从应用程序接收请求还是什么?
请帮我解决这些繁琐的问题.
谢谢.
以下是我的示例代码(为了安全起见,已更改了Auth Token和App ID):
<?php
define('PW_AUTH', 'XXXXXXXXXXX');
define('PW_APPLICATION', 'XXXXXXXXXXX');
define('PW_DEBUG', true);
function pwCall($method, $data) {
$url = 'https://cp.pushwoosh.com/json/1.3/' . $method;
$request = json_encode(['request' => $data]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch); …Run Code Online (Sandbox Code Playgroud) php token push-notification apple-push-notifications pushwoosh
以下是我的多维数组的输出 $csmap_data
Array
(
[0] => Array
(
[cs_map_id] => 84
[cs_subject_id] => 1
)
[1] => Array
(
[cs_map_id] => 85
[cs_subject_id] => 5
)
[flag] => 1
)
Run Code Online (Sandbox Code Playgroud)
最初[flag] => 1,数组中没有键值,我将它添加到数组中$csmap_data.但我想[flag] => 1在上面两个数组元素中添加,而不是作为单独的数组元素.总之,我想要以下输出:
Array
(
[0] => Array
(
[cs_map_id] => 84
[cs_subject_id] => 1
[flag] => 1
)
[1] => Array
(
[cs_map_id] => 85
[cs_subject_id] => 5
[flag] => 1
)
)
Run Code Online (Sandbox Code Playgroud)
我试图实现的代码如下,但无法获得所需的输出:
if (!empty($csmap_data)) {
foreach($csmap_data as $csm) { …Run Code Online (Sandbox Code Playgroud) 我刚开始在一个开发人员以前工作的网站上工作.他在其中一个网页中实现了Datepicker小部件.
当我浏览这个实现的代码时,我不明白代码实际上做了什么?我无法弄清楚逻辑的编写方式.
我还浏览了关于函数'beforeShowDay'和'onSelect'的Datepicker小部件的jQuery UI API文档,但是也找不到线索,所以请求帮助让我以更简单和描述的方式理解下面的代码.
有人可以用简单明了的语言让我理解"afterShowDay"和"onSelect"中函数的用法吗?
HTML代码:
<div class="col-md-2 voffset2 rightpad">
<div class="col-sm-3">
<div id="datepicker"></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
Javascript代码:
<script type="application/javascript">
$(document).ready(function() {
/******* Display Calender and events highlighted *******/
/*Not understood what does below array variable has role to play */
var myDates = $.parseJSON('["1969-12-31","1969-12-31","1969-12-31","1969-12-31","1969-12-31","1969-12-31","1969-12-31","1969-12-31","1969-12-31","1969-12-31","1969-12-31","1969-12-31","1969-12-31","1969-12-31","1969-12-31","1969-12-31"]');
$( "#datepicker" ).datepicker({
beforeShowDay: function(date) {
var dateObj = new Date(date);
var month = dateObj.getMonth() + 1;
if(month < 10) {
month = "0"+month;
}
var day = dateObj.getDate();
if(day < …Run Code Online (Sandbox Code Playgroud) 我正在将一个名为$enquiries_labels php文件的数组分配给一个聪明的模板文件.如果我在PHP文件中打印数组,它的输出如下:
Array
(
[0] => New Enquiry
[1] => Retail Enquiry
[2] => Feedback
[3] => Payment Query
[4] => Package Query
[5] => Test Query
)
Run Code Online (Sandbox Code Playgroud)
现在,在将此数组分配给smarty文件后,我想在选择HTML控件中访问这些值.为此,我需要使用智能模板引擎的foreach循环结构.如果预先选择的值与数组中的键匹配,那么我将保持选择该值.为了实现这一点,我尝试了下面的代码,但它对我不起作用.有人可以帮我这方面吗?供你参考我把它放在我在smarty模板中尝试过的代码之下:
<select name="contact_label" id="contact_label">
{if $enquiries_labels}
{foreach from=$enquiries_labels item=label}
<option value="{$label.key}" {if $data.key == $label.key} selected="selected" {/if}>{$label.value}
</option>
{/foreach}
{/if}
</select>
Run Code Online (Sandbox Code Playgroud)
感谢您花费一些宝贵的时间来理解我的问题.
我有一个已经使用PHPFox开发的网站,它工作正常.现在,iOS开发团队已经在iOS中创建了一个移动应用程序,其功能与网站相同.用户可以使用此应用程序执行所有操作,他/她可以在网站上执行此操作.换句话说,我们可以说这个应用程序是现有网站的复制品.开发应用程序的唯一限制是流程和功能应与网站相同.应用与现有运行网站之间不应存在任何功能差异.
对于这个应用程序,他们使用与网站的PHPFox代码库相同的功能.我通过使用Slim框架开发的REST API为iOS团队提供了这些功能.在这些API中,我接受来自应用程序的JSON格式的请求,解码它,通过传递所需的请求参数从PHPFox代码库调用所需的函数,从函数获取响应,将其转换为JSON格式并将其发送回到移动应用程序.
现在,让我们关注我面临的问题.
在两种情况(网站和应用程序)中,对于某些功能,例如新用户帐户激活链接,重新发送帐户激活链接,重置现有用户的密码,如果他/她忘记了密码等,则会向相关用户发送电子邮件.此电子邮件包含相关的超链接.当用户点击发送到电子邮件中的此超链接时,它总是会重定向到网站上的相应网页.
当该特定用户点击收到的邮件中存在的超链接时,它仅被重定向到网站.它不会重定向到应用程序.
我的要求是,如果用户已将邮件打开到已安装/运行移动应用程序的设备上并点击邮件中的超链接,则他/她应该重定向到移动应用程序的特定页面而不是网站.
并且假设用户在计算机,笔记本电脑或未安装应用程序的设备上打开了邮件,他/她应该重定向到该网站.
我该怎么做到这一点?
这里需要注意的另一件事是要发送到邮件中的链接的重定向路径(href属性的值)仅生成到网站的PHPFox代码中.那么,如果我需要更改逻辑来实现这个新功能,我该如何做而不改变应用程序和网站上的系统流程?或者我应该为它编写一个新函数,以便不更改PHPFox的现有代码?
我研究了这个问题的解决方案.我开始了解Bitly可以完成这项工作但却无法理解.
iOS团队根据他们在互联网上找到的超链接文章向我(PHP团队)提出了这个要求.请参考这个.
所以,我直截了当的问题是因为这篇文章是关于iOS编码的,它与服务器端编码(即PHP)无关,我是否必须在服务器端使用PHP来实现此功能?
我是 Smarty 的新手。我想对 smarty 中的数组元素进行取模操作。以下是我尝试实现的代码片段:
{if {$que_seq_no}.{$sub_ques_no+1} % 10 == 1}
Run Code Online (Sandbox Code Playgroud)
你能帮我改正吗?提前致谢。
我目前有一个文本作为超链接,并在此一些CSS代码正在应用.由于在悬停时文本被加下划线并且字体在悬停事件中变为粗体.但是现在我要做的是删除超链接并通过默认应用相同的效果,即不在悬停上.总之,我想在不悬停文本的情况下应用当前应用于悬停的样式.我的HTML和css代码如下:
.faq .section p.quetn a:hover {
text-decoration:underline;
font-weight:bold
}
<p class="quetn"><a href="">5.14 Where do i see my test results?</a></p>
Run Code Online (Sandbox Code Playgroud)
一个更重要的是我无法改变上面写的CSS,我想通过编写一个新类来覆盖上面的CSS代码.你能帮助我实现这个目标吗?提前致谢.
我在智能模板中有一个过滤器表单,如下所示:
<form id="view-questions-form" name="user_transactions" action="{$control_url}modules/transactions/view_transactions.php" method="post">
<div class="w50">
<ul>
<li>
<label>From Date</label>
<div class="form-element">
<input type="text" class="cal fl-left" id="frmDate" name="from_date" value="{if $from_date}{$from_date}{else}{$today_date}{/if}" maxlength="10">
</div>
</li>
<li>
<label>Transaction No.</label>
<div class="form-element">
<input type="text" name="transaction_no" id="transaction_no" class="" value="{if $transaction_no}{$transaction_no}{/if}" maxlength="50">
</div>
</li>
</ul>
</div>
<div class="w50">
<ul>
<li>
<label>To Date</label>
<div class="form-element">
<input type="text" name="to_date" id="toDate" class="cal" value="{if $to_date}{$to_date}{else}{$today_date}{/if}" maxlength="10">
</div>
</li>
<li>
<label>Discount Code</label>
<div class="form-element">
<input type="text" name="userName" id="userName" class="">
</div>
</li>
</ul>
</div>
<div class="w50">
<ul>
<li>
<label>Status</label>
<div …Run Code Online (Sandbox Code Playgroud) 我正在发送对来自iPhone的请求的JSON编码响应。在一些值中,有些HTML实体存在。我尝试使用stripslashes()和html_entity_decode()使用这样的值。在浏览器中,我能够获得正确的JSON响应,即没有这些HTML实体,但是当在iPhone或iPhone模拟器上看到相同的响应时,HTML实体会再次显示。
我应该如何解决这个问题?有人可以帮忙吗?
如果您愿意,我可以为您提供必要的代码。
谢谢。