2015-05-18 83 views
-3

我想從一個PHP腳本發送到JavaScript的變種。這是我到目前爲止:發送一個從PHP到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(它是空的而不是'測試'例如)。所以這個腳本不起作用。

我希望你能幫助我!

對不起,我英文不好順便說一句,我希望你明白的問題:)

+5

我們需要看看'$ extract ['name']'是否被設置來解決這個問題。 –

+0

您是以POST形式還是在Get中提交? –

+0

代碼不足。你如何設置'$ extract ['name']'? – SRing

回答

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> 
    '; 
} 
?> 

變化this.if你通過文字javascript函數它必須是之間「」

<?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> 
    '; 
} 
?> 
0

假設:

$sygroup == '3' 

和:

$extract['name'] = 'Test'; 

和:

$idfinal = 'something'; 

你還有一對夫婦的問題在這裏:

1)這部分代碼在這裏:

<img onClick="showEditMenuItemForm('.$valueRname.')" 

.. 。不會做你想做的事。這是要打印的是這樣的:

<img onClick="showEditMenuItemForm(test)" 

的代碼要請客「測試」在這裏作爲一個變量,它不是,想必是要提供給函數的字符串,你是對此不太清楚。它需要用引號括起來,以便在稍後的函數中使用。

2)我不知道這是什麼:

document.editMenuItemForm.menuitem_edit.value == '+name+'; 

但它在這種情況下,一個字符串,你可能想要更多的東西是這樣的:

document.editMenuItemForm.menuitem_edit.value == "'" + name + "'"; 

...這將適當的語法連接你的變量和一個字符串,並確保它有引號。我不確定你在這裏做什麼。

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 
} 
?> 
相關問題