【问题标题】:Executing a php code with parameters from jquery使用来自 jquery 的参数执行 php 代码
【发布时间】:2015-03-16 10:29:12
【问题描述】:

我需要通过 jQuery 代码中的 $_POST 方法调用带有参数的 php 页面 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");
?>

我之前在线程中做了类似的事情:'Upload a file and reloading a div instead reloading a page',但我的代码根本不起作用。

div activity的内容更新成功,显示'Success'字符串的弹窗,但是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)。在 page1.php 中,您只使用指定的参数。而且我认为 new FormData(this) 不起作用,因为在这种情况下,'this' 是一个图像,因为点击功能在一个带有 id:leftUp 的图像上——但我不确定
  • 出现什么错误...您可以查看您的浏览器开发者控制台日志...
  • 我从 page0.php 中取出该行,但没有任何反应。 : (
  • @simo-zz 为什么包含(“page0.php”);在第 1 页?
  • @simo-zz 你得到什么回应?

标签: php jquery ajax


【解决方案1】:

你不需要

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
      }
});

【讨论】:

  • 同上,不工作。谢谢纳希德
  • 两者都不是。 :(谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-10
  • 2017-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多