从php发送var到javascript不起作用

时间:2015-05-18 17:33:26

标签: javascript php

我想从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;例如)。所以脚本不起作用。

我希望你能帮助我!

抱歉我的英语不好,我希望你能理解这个问题:)

3 个答案:

答案 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
}
?>