我想从php脚本发送一个var到javascript。以下是我到目前为止的情况:
<script>
function showEditMenuItemForm(name) {
document.getElementById('editMenuItemForm').style.display = 'block';
document.editMenuItemForm.menuitem_edit.value == '+name+';
document.editMenuItemForm.menuitem_edit.focus();
document.getElementById('linkOpenAddMenuListForm').style.display = 'none';
document.getElementById('addNewMenuItemForm').style.display = 'none';
}
</script>
<?php
if($sygroup == '3') {
$valueRname = $extract['name'];
echo '
<p>
'.$extract['name'].'
<a onClick="return returnDeleteSure()" href="systemdeletemenuitem.php?id='.$idfinal.'">
<img src="img/deleteicon.png" class="icon12">
</a>
<img onClick="showEditMenuItemForm('.$valueRname.')" src="img/Edit File-32.png" class="icon12">
</p>
';
}
?>
我不知道为什么但是值不是php var(它是空的而不是&#39; Test&#39;例如)。所以脚本不起作用。
我希望你能帮助我!
抱歉我的英语不好,我希望你能理解这个问题:)
答案 0 :(得分:0)
<?php
if($sygroup == '3') {
$valueRname = $extract['name'];
echo '
<p>
'.$extract['name'].'
<a onClick="return returnDeleteSure()" href="systemdeletemenuitem.php?id='.$idfinal.'">
<img src="img/deleteicon.png" class="icon12">
</a>
<img onClick="showEditMenuItemForm('.$valueRname.')" src="img/Edit File-32.png" class="icon12">
</p>
';
}
?>
更改为此。如果您将文字传递给javascript函数,则必须在&#39;&#39;
之间<?php
if($sygroup == '3') {
$valueRname = $extract['name'];
echo '
<p>
'.$extract['name'].'
<a onClick="return returnDeleteSure()" href="systemdeletemenuitem.php?id='.$idfinal.'">
<img src="img/deleteicon.png" class="icon12">
</a>
<img onClick="showEditMenuItemForm(\''.$valueRname.'\')" src="img/Edit File-32.png" class="icon12">
</p>
';
}
?>
答案 1 :(得分:0)
假设:
$sygroup == '3'
和
$extract['name'] = 'Test';
和
$idfinal = 'something';
你在这里仍有一些问题:
1)这部分代码就在这里:
<img onClick="showEditMenuItemForm('.$valueRname.')"
......不会做你想要的。这将打印出这样的东西:
<img onClick="showEditMenuItemForm(test)"
代码在这里将'test'视为一个变量,它不是,可能是你想要提供给函数的字符串,你对此有点不清楚。它需要在引号中包装,以便稍后在函数内部使用。
2)我不知道这是什么:
document.editMenuItemForm.menuitem_edit.value == '+name+';
但在这种情况下它是一个文字字符串,你可能想要更像这样的东西:
document.editMenuItemForm.menuitem_edit.value == "'" + name + "'";
...这是将变量与字符串连接起来并确保它有引号的正确语法。我不确定你在这里做了什么。
答案 2 :(得分:0)
查看您正在生成的HTML和JS。不要只看PHP,然后想知道为什么JS不起作用。
查看JavaScript控制台。它会为您提供有用的错误消息。
此:
"showEditMenuItemForm('.$valueRname.')"
看起来它会产生类似的东西:
"showEditMenuItemForm(Bob)"
将抛出引用错误,因为你想要一个字符串文字,而不是那里的变量名。
使用json_encode
将PHP变量转换为JavaScript文字。
使用htmlspecialchars
将JavaScript文字转换为可以安全放入HTML属性值的内容。
避免将字符串混合在一起。
if($sygroup == '3') {
$valueRname = $extract['name'];
?>
<p>
<?php echo htmlspecialchars($extract['name']); ?>
<a onClick="return returnDeleteSure()"
href="systemdeletemenuitem.php?id=<?php echo htmlspecialchars(urlencode($idfinal)); ?>">
<img src="img/deleteicon.png" class="icon12">
</a>
<img onClick="showEditMenuItemForm(<?php htmlspecialchars(json_encode($valueRname)); ?>)"
src="img/Edit File-32.png" class="icon12">
</p>
<?php
}
?>