Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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 为什么在我打了ajax电话之后,这篇文章一片空白?_Php_Jquery_Ajax_Post_Redirect - Fatal编程技术网

Php 为什么在我打了ajax电话之后,这篇文章一片空白?

Php 为什么在我打了ajax电话之后,这篇文章一片空白?,php,jquery,ajax,post,redirect,Php,Jquery,Ajax,Post,Redirect,我有一个ajax调用: function change(x){ var id=x; alert(id); $.ajax({ url: "http://localhost/kidsKnitsDB/edit.php", type: "post", data: JSON.stringify(id), beforeSend: function(response){alert('Sending');},

我有一个ajax调用:

function change(x){
    var id=x;
    alert(id);
    $.ajax({
        url: "http://localhost/kidsKnitsDB/edit.php",
        type: "post",
        data: JSON.stringify(id),
        beforeSend: function(response){alert('Sending');},
            success: function(response){ alert('success');},
            error: function(response){alert('failed');},
            complete: function(response){window.location="http://localhost/kidsKnitsDB/edit.php";},
    });
}
从以下位置获取数据:

<?php for($r=0; $r<count($result); $r++){?>
    <tr>
        <?php for($c=0; $c<9; $c++){?>
            <td><?php echo $result[$r][$c];?></td>
        <?php }?>
        <td><button name="edit<?php echo $r;?>" onclick="change(<?php echo $result[$r][0];?>)">edit</button></td>
    </tr>
<?php }?>

警惕();
编辑

销售价格
成本
目录
出售
形象
积极的

然而,$id是空的,我相信这是因为ajax调用的缘故,但我不确定。如果有人能帮忙,那就太好了

第一个问题


您只是发送了一个数字,而不是一个对象,因此php代码不知道您将其称为id

改变

function change(x){
  var id=x;

第二个问题

使用这段代码:

complete: function(response){window.location="http://localhost/kidsKnitsDB/edit.php";}
在ajax调用完成后执行重定向

情况就是这样:

  • 第一个ajax请求被发送到服务器。由于您解决了第一个问题,现在它将获取名为id的post变量中的数字
  • 服务器生成页面并将其作为对ajax调用的响应
  • ajax调用完成后,您将手动重定向到刚刚发送ajax请求的同一页面,但这样做时不提供任何变量
  • 浏览器加载页面,但由于请求中未提供id,因此id为空
  • 从日志文件中,您可以看到它发出两个请求,第一个带有and id,第二个不带任何变量:

    [Sun Jan 26 19:08:29 2014] Array\n(\n [id] => 2\n)\n
    [Sun Jan 26 19:08:30 2014] Array\n(\n)\n
    
    我认为AJAX调用使它比本例中需要的更复杂。链接到
    http://localhost/kidsKnitsDB/edit.php?id=x
    其中x是数字。然后还应该在php代码中将$\u POST更改为$\u GET


    如果您仍然想使用AJAX,那么应该将从请求中得到的响应插入页面的某个位置,而不是像现在这样进行重定向

    您只是发送了一个数字,而不是一个对象,因此php代码不知道您将其称为id。将其转换为
    数据:{'id':id}
    是否有效?可能,请参阅我的答案。为什么要在完成时进行重定向?到同一编辑页。。。你将不会得到一个id…因为它不会重定向,否则出于某种原因,我想这是一个问题,但我不知道为什么没有它它它不会重定向。不,它仍然是空的,虽然我觉得你是对的,但问题仍然存在。在处理帖子的php代码中,请执行
    error\u log(print\r($\u post,true))并检查错误日志以了解您得到了哪些变量(或重写javascript查询以便查看结果并打印结果),这是错误日志显示的内容
    [Sun Jan 26 19:08:29 2014][error][client 127.0.0.1]Array\n(\n[id]=>2\n)\n,请参考:http://localhost/kidsKnitsDB/index.php [Sun Jan 26 19:08:30 2014][错误][client 127.0.0.1]PHP注意:第13行/var/www/kidsKnitsDB/edit.PHP中的未定义索引:id,参考:http://localhost/kidsKnitsDB/index.php [Sun Jan 26 19:08:30 2014][error][client 127.0.0.1]阵列\n(\n)\n,推荐人:http://localhost/kidsKnitsDB/index.php
    @ChristianGrabowski更新了我的答案,并回答了您的第二个问题。@ChristianGrabowski没问题,这就是本网站的全部内容:)谢谢您接受我的答案。你知道你也可以投票吗?
    complete: function(response){window.location="http://localhost/kidsKnitsDB/edit.php";}
    
    [Sun Jan 26 19:08:29 2014] Array\n(\n [id] => 2\n)\n
    [Sun Jan 26 19:08:30 2014] Array\n(\n)\n