我有一个PHP脚本,只生成日志到客户端.
当我回应某些内容时,我希望它能够即时转移到客户端.
(因为在脚本处理过程中,页面是空白的)
,我已经打得四处ob_start()
和ob_flush()
,但他们没有工作.
什么是最好的解决方案?
PS:在echo
通话结束时放一个同花牌有点脏......
编辑:Answers既不工作,PHP或Apache错误?
我正在使用Yii 2,它是gridview来显示信息.
现在,我的问题是,每当用户扫描两个相同的序列号和/或mac地址时,它应该突出显示该行(将颜色更改为红色),并显示一些错误符号或其他.
截图:
我希望它看起来像:
我是Yii2的新手,并不清楚他们是如何使用gridview做的.我一直在研究这个具体的问题,但找不到任何东西.
Gridview代码(没什么特别的)
<?= GridView::widget([
'id' => 'scan-batch-grid',
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
['class' => 'yii\grid\CheckboxColumn'],
[
'attribute' => 'product_ID',
'value' => 'product.name'
],
'SN',
'MAC',
[
'class' => 'yii\grid\ActionColumn',
'urlCreator' => function ($action, $model, $key, $index) {
return Url::to(['scan-batch/view', 'id' => $key, 'scan' => $model->scan_batch_ID]);
},
'buttons' => [
'update' => function ($url, $model, $key) {
return '';
},
'delete' => function ($url, $model, $key) {
return '';
},
],
], …
Run Code Online (Sandbox Code Playgroud) 我正在尝试更改gridView(Yii2)上显示的行数,但我在他们的文档中找不到任何内容.
它甚至可能还是必须使用另一个扩展?(例如Kartik.)
此外,是否可以删除 "显示x项的x",如下所示?
我正在向附带附件的用户发送邮件.未签名的邮件获得.pdf文件(大约64kb)并且工作正常.
但是,当我为其他用户签名时,PDF文件大约为64 B,无法打开.
签约时我没有对附件做任何事情,但是......所以这很奇怪.
我的签名代码:
email = SpecificMethods.DKIMSign(email);
internal static MailMessage DKIMSign(MailMessage email)
{
var privateKey = PrivateKeySigner.Create(@"-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----");
var domainKeySigner = new DomainKeySigner(privateKey, "***.com", "**", new string[] { "mime-version", "date", "subject", "from", "to", "content-type" });
email.DomainKeySign(domainKeySigner);
var dkimSigner = new DkimSigner(privateKey, "***.com", "**", new string[] { "mime-version", "date", "subject", "from", "to", "content-type" });
email.DkimSign(dkimSigner);
return email;
}
Run Code Online (Sandbox Code Playgroud)
并最终发送它.没有什么特别的事发生在那里.
为什么我的依恋会"破"?
我正在使用Parse,当我从网站向我的手机(特定频道)发送推送通知时,它运行正常.但是,当我尝试从手机向同一频道(或所有人)发送通知时,它不会发送.
我正在发送一个onClick按钮.
(代码很长,所以我会裁掉相关的部分)
(这是oncreate btw)
Parse.initialize(this, "CODE", "CODE");
ParseInstallation.getCurrentInstallation().saveInBackground();
ParsePush.subscribeInBackground("Channel1");
//PushService.startServiceIfRequired(this);
Run Code Online (Sandbox Code Playgroud)
-
case R.id.sendButton:
ParsePush push = new ParsePush();
String message = "Test" ;
//push.setChannel("Channel1");
push.setMessage(message);
push.sendInBackground();
break;
Run Code Online (Sandbox Code Playgroud)
(是的,按钮确实有效)
有人能帮帮我吗?我究竟做错了什么?
如果需要可以提供更多信息!
是的,我已经阅读了Parse的文档.我只是无法弄清楚我在这里做错了什么.我也尝试过ParsePush.send(); ,忽略线程.也不工作.
我的 Gridview 有 3 个独立的 dataProvider,一个包含已保存的数据,一个包含未保存的数据,另一个包含两者。
现在这就是我正在努力实现的目标:
如果单击“已保存”,dataProvider 将更改为已保存数据的数据提供者。
我正在尝试这样:
<?php
if($i == 1){
$dataProvider = $dataProviderSaved;
} elseif($i == 2) {
$dataProvider = $dataProviderNotsaved;
} else {
$dataProvider = $dataProviderBoth;
};
\yii\widgets\Pjax::begin(['id' => 'gridview', 'timeout' => false,
'enablePushState' => false, 'clientOptions' => ['method' => 'POST']]) ?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
//regular gridview..
\yii\widgets\Pjax::end(); ?>
Run Code Online (Sandbox Code Playgroud)
JavaScript:
var i = $i;
$("#saved").click(function(){
i=1;
$.pjax.defaults.timeout = false;//IMPORTANT
$.pjax.reload({container:"#gridview"});
});
', \yii\web\View::POS_READY);
Run Code Online (Sandbox Code Playgroud)
所以,我刚刚读到在 JS 中更改 PHP 变量是“不可能的”。
首先; 我正在使用Newtonsoft.Json将JSON反序列化为这样的对象:
JSON:
[{"number":22041}]
Run Code Online (Sandbox Code Playgroud)
订单对象
[JsonProperty("number")]
public string OrderNumber { get; set; }
Run Code Online (Sandbox Code Playgroud)
但是,根据"其他"方面的版本,Json可能会变为
[{"order_number":22041}]
Run Code Online (Sandbox Code Playgroud)
所以我实际上想要预先定义"number"和"order_number"来反序列化到我的OrderNumber中.
有没有办法实现类似下面的东西(实际上有效)
[JsonProperty("order_number")]
[JsonProperty("number")]
public string OrderNumber { get; set; }
Run Code Online (Sandbox Code Playgroud)
我可以编写另一个具有相同属性的类,但使用其他JsonProperties取决于它们所使用的版本,但这似乎是最后一次尝试的东西,除非没有可能的方法来更容易地做到这一点.
更新
我同意这个问题与上述问题重复.但是,由于JSON中的给定键发生了显着变化,因此我将制作重复的对象(OrderV1,OrderV2作为示例).
在我的情况下,简单地将一些字符替换为其他字符是不够的.
如果"现在"是开始日期的两天,我想提供一个选项,但该选项必须在当天结束前仍然有效.
所以,让我们说一些事情已订购:
10-10-2017 15:00
该选项必须可见
12-10-2017 23:59
我用了
if (ShippedDate.HasValue && (DateTime.Now - ShippedDate.Value).TotalDays <= 2)
Run Code Online (Sandbox Code Playgroud)
然而,一旦48小时过去了,(12-10-2017 15:01),它已经返回假
我已经尝试过比较天数,但从技术上讲,只要(第2天)等于开始日期,你就可以随时更改它.
我确信有一种更简单的方法可以做到这一点,但我无法理解它.
感谢大家的超级快速回复.结束使用Tim Schmelter的答案