2011-10-12 32 views
0

我寫一段代碼,下面是代碼如何調用PHP內的JavaScript函數/寫腳本回聲

<script type="text/javascript"> 
function submitform() 
{ 
    document.myform.action='http://mysite/index.php'; 
    document.myform.submit(); 
} 
</script> 

<?php 
if(isset($_POST['submit_details'])) 
{ 
     echo "<script typ=javascript> submitform();</script>"; 
} 

?> 
<form id="myform"> 
    ------ 
    ------ 
<input type="submit" name="submit_details"> 
</form> 

當我嘗試提交表單,它給我的錯誤document.myform是不確定的,如何解決此錯誤

+1

您的代碼在編寫時存在很多問題。你的PHP代碼中有語法錯誤。您正在使用Javascript來完成瀏覽器使用'

'做的事情,如果這是_is_ index.php,那麼您的PHP將自動提交表單再次...再次...再次... – Herbert

回答

2

document.myForm未定義當您正在運行腳本,因爲它正在運行之前表單元素已被瀏覽器接收。您需要將腳本放在表單標籤後,或者使用事件處理程序(或類似的)。

(儘管十分爲什麼要通過JS立即自動提交表單而不需用戶做任何事情我是無法理解。)

1

如果這是字面上你的代碼,然後它有語法錯誤了wazoo。

嘗試:

<?php if (isset($_POST['submit_details'])) { ?> 
    <script type="text/javascript">submitForm();</script> 
<?php } ?> 
+0

我在頁面的末尾添加了上述代碼,表單正在提交,但表單值爲空。表單正在提交具有空格式 – n92

1

嘗試移動腳本到頁面底部,或更好的,聽window.onload事件。當腳本被瀏覽器加載時,DOM尚未完成加載,但尚未找到document.myForm。

0

爲什麼不把JavaScript提交到輸入內像這樣?

<input type="submit" name="submitdetails" onclick="javascript:submitform();" /> 

然後使用$ post與jquery運行該頁面。

+1

'javascript:'是多餘的。 –

+0

好吧,現在我想學習,爲什麼? –

+0

通過這樣做,他不必在PHP中調用函數。我認爲這會更有效率。 –