2012-08-17 95 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

相关问题