2012-08-17 99 views
0

所以我有這種形式的頁面method =「POST」enctype =「multipart/form-data」,我設置我的行動到這個PHP文件。在這個php文件中,我將PHP代碼封裝在標籤中,然後在php後面的代碼中包含javascript代碼。我希望它能夠在提交表單時運行php和javascript代碼。當我將它本地託管在我的計算機上時,此工作正常。但是,它似乎並不適用於我需要託管它的服務器上。我在JavaScript代碼的第一行添加了一個alert(),並且它不運行。有誰知道爲什麼會發生這種情況/我可以調試的方式? 非常感謝。javascript中包含的php不工作在服務器上,但工作時localhosted

(我不認爲這是重要的,但在另外的形式提交到一個iframe來防止頁面更改)

-D jQuery的用於提交表單:

  $("#saved_form").submit(function(e) 
      { 
      e.preventDefault(); 
      this.submit(); 
      ... } 

下面是php/javascript代碼:

<?php 
    include 'readFile2.php'; 
    readText(); 
    ?> 
    <script type='text/javascript'> 
    alert("oh no"); 
    var errors = "<?= $_POST['error'] ?>"; 
    parent.window.saveLoad = 0; 
    //checks if text file is entered 
    if (errors == 1) 
    { 
    alert("Please enter a text file"); 
    } 
    else if (errors == 2) 
    { 
    alert("File must be text"); 
    } 
    else 
    { 
    parent.window.saveLoad = 1; 
    parent.window.saved_form = <?php echo json_encode($savedForm); ?>; 
    } 
    </script> 
+4

你有一些我們可以看到的代碼嗎? – jForrest 2012-08-17 15:59:19

+1

檢查瀏覽器的JavaScript控制檯是否有錯誤?缺少文件,不良路徑等...都可能導致代碼無法執行。 – 2012-08-17 16:00:45

+0

您是否嘗試過使用AJAX調用服務器中的PHP文件而不是使用PHP文件作爲表單動作? – Shabab 2012-08-17 16:00:48

回答

0

這將會更適當地完成Ajax調用PHP頁面。

例如:

$('#submitbtn).click(function(event){ 
    event.preventDefault(); 

    $.ajax({ 
     url: "readFile2.php",        
     timeout: 30000, 
     type: "POST", 
     data: $('#saved_form').serialize(), 
     dataType: 'json', 
     error: function(XMLHttpRequest, textStatus, errorThrown) { 
       alert("An error has occurred making the request: " + errorThrown) 
     }, 
     success: function(data){ 
       alert('it works. You can do more on success of submit here'); 
     }                        
    }); 
}); 

所以,總結一下,上面的代碼做一個AJAX調用一個名爲「readFile2.php」這是一個從形式(基本上是一個HTML JavaScript版本的發佈序列化的數據文件表單提交,將POST參數的值傳遞給PHP文件)期望返回json數據(可以將其更改爲text,html等),並在成功發佈後提醒「它可以正常工作......」。 PHP文件將不得不接受發佈的數據,對其進行處理,然後回顯你想要返回的文件。我更喜歡發送提交狀態的json字符串,以便我可以告訴我的界面是否有失敗的檢查,以防止數據庫中出現不良數據。你的表單提交時確實有服務器端保護....對嗎?!?

+0

這可能工作表示感謝。但是,仍然有點困惑。如果我只想讀取文本文件,則用戶使用input type = file上傳並返回一個字符串到javascript,那麼PHP文件的POST參數會是什麼? – user839260 2012-08-17 16:42:05

相關問題