Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中包含的javascript在服务器上不起作用,但在本地托管时起作用_Php_Javascript_Forms - Fatal编程技术网

php中包含的javascript在服务器上不起作用,但在本地托管时起作用

php中包含的javascript在服务器上不起作用,但在本地托管时起作用,php,javascript,forms,Php,Javascript,Forms,因此,我有一个带有method=“POST”enctype=“multipart/formdata”的表单页面,并将我的操作设置为这个php文件。在这个php文件中,我将php代码封装在标记中,然后将javascript代码封装在php之后的标记中。我想要它,这样当我提交表单时,php和javascript代码都会运行。当我把它放在本地计算机上时,它工作得很好。但是,它似乎无法在我需要承载它的服务器上工作。我在javascript代码的第一行添加了一个alert(),但它没有运行。有人知道为什么

因此,我有一个带有method=“POST”enctype=“multipart/formdata”的表单页面,并将我的操作设置为这个php文件。在这个php文件中,我将php代码封装在标记中,然后将javascript代码封装在php之后的标记中。我想要它,这样当我提交表单时,php和javascript代码都会运行。当我把它放在本地计算机上时,它工作得很好。但是,它似乎无法在我需要承载它的服务器上工作。我在javascript代码的第一行添加了一个alert(),但它没有运行。有人知道为什么会发生这种情况/我调试这种情况的方法吗? 非常感谢

(我不认为这很重要,但另外表单正在提交到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>

警惕(“哦不”);
var误差=”;
parent.window.saveLoad=0;
//检查是否输入了文本文件
如果(错误==1)
{
警报(“请输入文本文件”);
}
else if(错误==2)
{
警报(“文件必须为文本”);
}
其他的
{
parent.window.saveLoad=1;
parent.window.saved_form=;
}

对php页面进行Ajax调用更合适

例如:

$('#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');
         }                                                                                              
     });
 });

总之,上面的代码对一个名为“readFile2.php”的文件进行了ajax调用,它从表单中发布序列化数据(本质上是HTML表单submit的javascript版本,将POST参数上的值传递给php文件),它期望返回json数据(可以更改为文本、HTML等)并发出警报“它起作用了。。。“关于这一职位的成功。PHP文件必须接受发布的数据,对其进行处理,并将您想要返回的内容回显到文件中。我更喜欢发送一个提交状态的json字符串,这样我就可以告诉我的接口是否有失败的检查,以防止坏数据进入数据库。您的表单提交上有服务器端保护…对吗

你有我们可以看到的代码吗?检查浏览器的javascript控制台是否有错误?缺少文件、路径错误等。。。所有这些都可能导致代码无法执行。您是否尝试过在服务器中使用对PHP文件的AJAX调用,而不是将PHP文件用作表单操作?您知道javascript通常在客户端上执行,而PHP在服务器上执行?这只是一个猜测(由于缺少代码):localhost支持此功能,谢谢。不过,还是有点困惑。如果我只想读取用户上传的文本文件,并使用input type=file将字符串返回到javascript,那么PHP文件的POST参数是什么?