我正在尝试编写一个代码,以便在单击表时传递PHP字符串:
<?php
echo("<td onclick = 'print_("$file[$i]->Name");' >". $files[$i]->Name."</td>");
?>
其中files[]
是一个数组,并且每个元素都是一个名为字符串的类,并且它被放在for
循环中。
我试图将它传递给JavaScript函数,我需要在那里使用它的名字,它不起作用。我尝试传递i
变量并且它被正确传递,所以我认为应该有一个特殊的语法来处理字符串。
function print_(var x) {
alert(x);
}
答案 0 :(得分:1)
你需要在字符串周围加上引号。试试这个:
echo("<td onclick = 'print_(\'".$file[$i]->Name."\');' >". $files[$i]->Name."</td>");
还要确保您的$ file [$ i] - &gt;名称不包含引号
答案 1 :(得分:0)
您可以编写值而不显示它。然后单击时显示它:
echo("<td id='" . $i . "' onclick='javascript:show(" . $i . ")'><p>" . $files[$i]->Name . "</p></td>");
然后将p-tag的可见性设置为hidden,并使用show()函数显示它。如果这不适合你,我建议你用ajax调用:)
答案 2 :(得分:0)
您可以尝试这样的事情:
<?php
...
$scriptCode="";
...(looping)
echo("<td id='print_td$i' >". $files[$i]->Name."</td>");
$scriptCode .= '$("#print_td'.$i.'").click(function(){
var id = '.$i.';
//Do whatever JS you need to here, possibly: print_(id);
});';
... (end loop)
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
<?php echo $scriptCode; ?>
});
</script>
这有点广泛,但它将在未来为您提供更大的灵活性。
答案 3 :(得分:0)
除了引用和连接为matei建议之外,您的函数失败,因为function print_(var x)
不是有效的JavaScript。您不需要函数声明中的var。只需声明如下:function print_(x)
答案 4 :(得分:0)
我遇到了同样的问题并找到了答案(即使它没有意义)
你希望这可行......
echo '<td onclick="showPicture("' . $pic . '")><img src="' . $row['imgRef'] . '" height="60"; /></td>';
但事实上,这有效......
echo '<td onclick=showPicture(' . $pic . ')><img src=' . $row['imgRef'] . ' height="60"; /></td>';
你会发现你实际上必须省略你通常希望看到它们的引号。