Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在使用PHP生成的表上设置style属性无效_Javascript_Php_Html_Css_Styles - Fatal编程技术网

Javascript 在使用PHP生成的表上设置style属性无效

Javascript 在使用PHP生成的表上设置style属性无效,javascript,php,html,css,styles,Javascript,Php,Html,Css,Styles,我有几个表通过PHP循环传递到我的页面。在每个PHP循环的末尾,都会运行一个if语句(该语句的计算结果为true),如下所示: if ($ssstatus[0] == 'F'){ echo "<script>"; //echo "alert('We are in this loop');"; echo "flagfinished(".$gameID.");"; echo "</script>"; } 我不知道这为什么不起作用。我可以说

我有几个表通过PHP循环传递到我的页面。在每个PHP循环的末尾,都会运行一个if语句(该语句的计算结果为true),如下所示:

if ($ssstatus[0] == 'F'){

    echo "<script>";
    //echo "alert('We are in this loop');";
    echo "flagfinished(".$gameID.");";
    echo "</script>";

}

我不知道这为什么不起作用。我可以说表上的my id属性设置正确,并且与变量myid匹配。我甚至尝试过只输入一个id属性的文本而不是myid,但仍然没有成功。我还手动将“border style”属性添加到我的css中,效果很好。也许我完全走错了方向。或者我忽略了一些显而易见的事情。我已经做了好几个小时了!谢谢你的任何想法或帮助

您试图定义的
边框样式
不是元素属性。该属性将是
style
。而
border style
将是style属性的一个值

testel.style.borderStyle = "solid";
因此,在你的思路中:

var testel = document.getElementById(myid);
testel.setAttribute("style", "border-style: solid");
但是,Javascript DOM已经为您处理了样式属性,因此您可以:

var testel = document.getElementById(myid);
testel.style.bordeStyle = "solid";

接下来

你为什么要用javascript调用flagFinished?你也可以用php做同样的事情。在将css类发送到浏览器(回显/打印)之前,将其添加到表中,然后让css发挥它的魔力?这样,您就不必向客户端发送所有这些额外的标记,这使得页面加载速度更快,并且是一个更好的解决方案

你可以这样做:

<?php
$tables = [
    ['data'   => [
        ['id' => 1, 'content' => 'sample content'],
        ['id' => 2, 'content' => 'sample content jabadabaduuu...'],
        ['id' => 3, 'content' => 'test 1123123123'],
        ['id' => 4, 'content' => 'sample content']
    ],
     'status' => 'F'
    ],
    ['data'   => [
        ['id' => 1, 'content' => 'sample content'],
        ['id' => 2, 'content' => 'sample content jabadabaduuu...'],
        ['id' => 3, 'content' => 'test 1123123123'],
        ['id' => 4, 'content' => 'sample content']
    ],
     'status' => 'S'
    ],
    ['data'   => [
        ['id' => 1, 'content' => 'sample content'],
        ['id' => 2, 'content' => 'sample content jabadabaduuu...'],
        ['id' => 3, 'content' => 'test 1123123123'],
        ['id' => 4, 'content' => 'sample content']
    ],
     'status' => 'F'
    ]
];


foreach ($tables as $table) {
    ?>
    <table id="<?= myUniqueTableIdGeneratorFunction() ?>"
           class="<?= ($table['status']) == 'F' ? 'class-with-border' : null ?>" ><?php
    foreach ($table['data'] as $row) {
        ?>
        <tr>
            <td><?= $row['id'] ?></td>
            <td><?= $row['content'] ?></td>
        </tr>
    <?php
    }
    ?></table><?php
}
?>


$gameID
中有哪些值,您是否检查了JS代码中的
myid
中有哪些值?你确定你的文档中有该ID的元素吗?是的,谢谢。这里有我可以使用的可用属性的参考吗?例如,我如何才能找到borderStyle所做的和borderStyle所做的一样?当然。您需要使用纯JS将样式对象用于这些CSS更改。我相信这是一个很好的解决方案。我认为我所做的有点过分了。我需要一些客户端处理,因此需要调用JavaScript函数。我不希望所有这些都在服务器上执行。不过,谢谢你的想法!嗯,我见过许多针对同一类问题的不同实现。这可能是实现它的简单方法之一。当然,您需要进行大量服务器端计算。但另一方面,您将更快地加载您的页面,客户端将获得更好、更流畅的体验:)只需注意:P
<?php
$tables = [
    ['data'   => [
        ['id' => 1, 'content' => 'sample content'],
        ['id' => 2, 'content' => 'sample content jabadabaduuu...'],
        ['id' => 3, 'content' => 'test 1123123123'],
        ['id' => 4, 'content' => 'sample content']
    ],
     'status' => 'F'
    ],
    ['data'   => [
        ['id' => 1, 'content' => 'sample content'],
        ['id' => 2, 'content' => 'sample content jabadabaduuu...'],
        ['id' => 3, 'content' => 'test 1123123123'],
        ['id' => 4, 'content' => 'sample content']
    ],
     'status' => 'S'
    ],
    ['data'   => [
        ['id' => 1, 'content' => 'sample content'],
        ['id' => 2, 'content' => 'sample content jabadabaduuu...'],
        ['id' => 3, 'content' => 'test 1123123123'],
        ['id' => 4, 'content' => 'sample content']
    ],
     'status' => 'F'
    ]
];


foreach ($tables as $table) {
    ?>
    <table id="<?= myUniqueTableIdGeneratorFunction() ?>"
           class="<?= ($table['status']) == 'F' ? 'class-with-border' : null ?>" ><?php
    foreach ($table['data'] as $row) {
        ?>
        <tr>
            <td><?= $row['id'] ?></td>
            <td><?= $row['content'] ?></td>
        </tr>
    <?php
    }
    ?></table><?php
}
?>