2012-12-07 55 views
0

我在iframe中有一個表單,並且我想用某些數據預填充表單。填充數據:未捕獲的語法錯誤意外的輸入結束

我正在嘗試使用php和javascript來完成此操作。

我的代碼看起來是這樣的:

<script type="text/javascript"> 
     $(window).load(function() { 
      document.getElementById('20988888993483').document.getElementById('input_13').value = <?=htmlspecialchars($_POST['input_13'])?>; 
     } 
    </script> 

iframe的id爲20988888993483,並且輸入的ID是input_13。我預先加載了之前表單提交的值。

雖然這段代碼串在一起,但我不太確定該怎麼做。

當我加載JavaScript是我得到的錯誤:uncaught syntaxerror unexpected end of input

UPDATE

隨着人們的建議,我已經添加了周圍的PHP字符串引號。在野外,值爲5,JavaScript看起來像這樣 - >

<script type="text/javascript"> 
     $(window).load(function() { 
     document.getElementById('20988888993483').document.getElementById('input_13').value = "5"; 
     } 
    </script> 

雖然我仍然收到錯誤。不勝感激

+0

嘗試添加引號:'。 .. =「」;' – VisioN

+0

您是否嘗試將PHP部分放在引號中? –

回答

1

如果$_POST['input_13']中的數據是一個字符串(即:不是數字或null),那麼你需要用引號括起來。

爲了處理magic quotes配置設置的可能性被啓用:

$strValue = $_POST['input_13']; 
if(get_magic_quotes_gpc()) { 
    $strValue = stripslashes($strValue); 
} 

然後你只需要逃避雙引號:

$strValue = addcslashes($strValue, '"'); 

的字符串是現在可以安全地插入JavaScript的。另請注意,無需使用htmlspecialchars(),因爲您正在設置元素的value屬性,而不是innerHTML屬性。

document.getElementById('20988888993483').document.getElementById('input_13').value = "<?= $strValue ?>"; 

編輯

或者,如果你正在運行PHP> = 5.2.0,那麼最好的解決方案是使用json_encode()

$strValue = $_POST['input_13']; 
if(get_magic_quotes_gpc()) { 
    $strValue = stripslashes($strValue); 
} 

document.getElementById('20988888993483').document.getElementById('input_13').value = <?= json_encode($strValue) ?>; 
+0

Ohp,這很有道理。我補充說,雖然錯誤似乎仍然存在。我已經更新了這篇文章,看看它現在的樣子。你的想法非常感謝。 –

+0

Ohp!只需要添加});在JavaScript的底部也是如此。一切都很好!謝謝 :) –

相關問題