gpt4 book ai didi

javascript - 在 JSON 中有条件地使用 javascript 变量

转载 作者:行者123 更新时间:2023-11-28 20:12:22 25 4
gpt4 key购买 nike

在下面的代码中我写了一个条件 (if (epsflag==0)<?php $a=",hide:'true'";?> ) .我想使用 javascript 实现相同的条件。我的意思是我想在 JSON 中有条件地使用 javascript 变量。任何帮助将不胜感激。如果我的问题不清楚,请告诉我。

{display: 'Wave Name', name : 'wavename', sortable : true,align: 'left' <?php echo "$a"?>}

<script type="text/javascript">
function rowdata(epsflag,respflag){
if (epsflag==0) {
<?php $a=",hide:'true'";?>
}else
{
<?php $a=",hide:'false'";?>
}
//alert(respflag);
$("#flex1").flexigrid(
{

url: myurl,
dataType: 'json',
colModel : [
{display: 'Nr.', name : 'nr', sortable : true, align: 'center',width:25},
{display: 'Datum', name : 'consultationdate', sortable : true, align: 'left'},
{display: 'Wave Name', name : 'wavename', sortable : true, align: 'left'<?php echo "$a"?>},
{display: 'Name', name : 'respname', sortable : true, align: 'left'},
{display: 'E-mail', name : 'email', sortable : true, align: 'left',width:180},
{display: 'Telefoon', name : 'telefoon', sortable : true, align: 'left'},
{display: 'Medewerker', name : 'consultationwith', sortable : true, align: 'left'}
],

});
}

最佳答案

我认为您误解了网络的工作原理。

PHP 是一种字符串处理语言。它所做的只是生成字符串。由于 javascript 对于 PHP 来说只是一个非常大的字符串,我们可以将其替换为另一个测试字符串,以便更清楚地了解正在发生的情况。让我们将其替换为“bla bla bla..”:

bla bla bla bla bla bla
<?php $a=",hide:'true'";?>
bla bla bla bla bla bla
<?php $a=",hide:'false'";?>
bla bla bla bla bla bla
<?php echo "$a"?>
bla bla bla bla bla bla

现在让我们简化一下:

<?php
$a=",hide:'true'";
$a=",hide:'false'";
echo "$a";
?>

这就是 php 执行的内容。因此,它输出字符串:

bla bla bla bla bla bla    // note: you're not outputting anything here
bla bla bla bla bla bla
,hide:'false'
bla bla bla bla bla bla

现在将 "bla bla" 替换为原始字符串的简化版本,输出将变为:

<script type="text/javascript">
function rowdata(epsflag,respflag){
if (epsflag==0) {
// note: you echoed nothing here in PHP
}
else {
// note: you echoed nothing here in PHP
}

$("#flex1").flexigrid({
colModel : [
{align:'left',hide:'false'} // logically, it's always false
]
});
}

现在,如果您一直在遵循我的解释,并且突然意识到 PHP 根本不处理 javascript 并且浏览器根本看不到 PHP,那么您会意识到这是一个重复的问题:What is the difference between client-side and server-side programming?

所以。既然我们了解了网络的工作原理,那么如何解决您的问题呢?

对于这个非常具体的问题,我注意到您根本不需要将任何内容实际传递回 PHP。您要做的就是更改 javascript 对象中的值。那么,当你可以使用 javascript 直接更改值时,为什么还要使用 PHP 来操作 javascript 源代码呢?在js中实现:

var wavedata = {
display: 'Wave Name',
name : 'wavename',
sortable : true
};

if (epsflag==0) {
wavedata.hide = 'true';
}
else {
wavedata.hide = 'false';
}


$("#flex1").flexigrid({
colModel : [
// other data
wavedata,
// other data
]
});

或者,如果您想让源代码尽可能接近当前代码,那么请按照 Grundy 的建议进行操作,只是因为您希望将值设置为字符串 “true”"false" 将其更改为:

{/* ... */ align: 'left',hide: epsflag==0 ? 'true' : 'false'}

关于javascript - 在 JSON 中有条件地使用 javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19698441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com