使用 jquery 中的参数执行 php 代码


Executing a php code with parameters from jquery

我需要通过 $_POST 方法从 jQuery 代码调用一个 php page page1.php 参数,而不重新加载我调用的页面,我们称之为 page0.php ..

这就是我在 page0 中编写的代码.php

<img id="leftUp" src="/imagenes/cursor_1.png" width="52" height="52" ondragstart='return false;'/>
<div id="activity"style="text-align:left;position:relative;left:120px;">
   <h3 style="color: yellow;"></h3>
</div>
<script>
  var $level = 1;
  $("#leftUp").click(function()
  {
    var $hOffset = -5;
    var $vOffset = -5;
    $hOffset *= $level;
    $vOffset *= $level;
    $("#activity").text("Values h: " + $hOffset + " - v: " + $vOffset);
    event.preventDefault();
    $.ajax(
    { 
      url: "page1.php",
      method: 'POST',
      data: new FormData(this),
      params:
      {
        interrupt: '14',
        hOffset: $hOffset,
        vOffset: $vOffset
      },
      contentType: false,
      cache: false,
      processData: false,
      success: function(data)
      {
          alert('Success');
      },
      failure:function(transport)
      { 
        alert('Error');
      }
    });
  });
});
</script>

而 page1.php 的代码基本上是这样的:

<?php 
if(isset($_POST["interrupt"]))
{
    $interrupt = urlencode($_POST["interrupt"]);
    /* 
      write the interrupt number into the interrupt
      reference file
    */
    exec("echo '$interrupt' > $intFile"); 
}
if(isset($_POST["hOffset"]))
{
    $hOffset = urlencode($_POST["hOffset"]); 
}
if(isset($_POST["vOffset"]))
{
    $vOffset = urlencode($_POST["vOffset"]); 
}
/* other stuff here ... */
include("page0.php");
?>

我之前在线程中做了类似的事情:"上传文件并重新加载div 而不是重新加载页面",但我的代码根本不起作用。

div 活动的内容更新成功,并显示"成功"字符串的弹出窗口,但 PHP 代码似乎没有执行。

问题应该出在 $.ajax 块内的 jQuery 代码中,但我不是一个有经验的 Web 程序员,所以我真的不知道如何解决这个问题。

任何建议都非常感谢。提前谢谢你。

编辑:我修改了ajax,如下所示:

$.ajax(
{ 
  url: "page1.php",
  type: 'GET',
  data: 
  {
    interrupt: "14",
    hOffset: $hOffset,
    vOffset: $vOffset
  },
  contentType: false,
  cache: false,
  processData: false,
  success: function(data)
  {
      alert('Success');
  },
  failure:function(transport)
  { 
    alert('Error');
  }
});

但仍然没有任何反应。

你不需要

data:new FormData(this)

试试这个

 $.ajax(
    { 
      url: "page1.php",
      method: 'POST',
      data: 'interrupt=14&hOffset='+hOffset+'&vOffset='+vOffset,
success:function(response){
//do something
},
 failure:function(transport)
      { 
        //do something
      }
});