首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Javascript调用在php上获取Ajax POST数据

通过Javascript调用在php上获取Ajax POST数据
EN

Stack Overflow用户
提问于 2013-05-08 06:10:11
回答 4查看 9.7K关注 0票数 10

首先,我要说明我是新手 to php,我在客户端使用jquery(剔除js),在服务器端使用PHP。我的密码。

客户端:我正在使用knockout js(Javascript)。调用我的PHP服务。

我的代码:

代码语言:javascript
复制
self.VMSaveEditUserMode = function () {
   try {
      var params = { "ClientData": [controllerVM_.ClientID(), controllerVM_.VMList[0].ClientName(), controllerVM_.VMList[0].ShortName(), controllerVM_.VMList[0].Address(), controllerVM_.VMList[0].CreatedBy(), controllerVM_.VMList[0].CityName(), controllerVM_.VMList[0].PostalCode(), controllerVM_.VMList[0].ContactEmail(), controllerVM_.VMList[0].ContactPhone(), controllerVM_.VMList[0].IsCorporate()] };

      $.ajax({
         type: "POST",
         url: URL + "index.php/phpService/SaveClient/" + controllerVM_.TokenKey(),
         data: JSON.stringify(ko.toJS(params)),
         contentType: "application/json",
         async: true,
         dataType: 'json',
         cache: false,
         success: function (response) {
         },
         error: function (ErrorResponse) {
            if (ErrorResponse.statusText == "OK") {
            }
            else {
               alert("ErrorMsg:" + ErrorResponse.statusText);
            }
         }
      });
   }
   catch (error) {
      alert("Catch:" + error);
   }
}

服务器端我的代码,我使用这个PHP代码来连接DB

PHP代码

代码语言:javascript
复制
public function SaveClient($userToken)
    {   
       $value = json_decode($Clientdata);
       echo $value->ClientData[0];
    }

*我的问题*

  • 我不清楚如何在PHP中发布数据?我尝试过使用$_POST['']方法以及更多的方法。
  • 我使用eclipse作为php框架。因此,当我发布data.Normally模式时,无法调试它--我能够调试我的code.but --而不是从remotely.for调试--我也对php.ini文件进行了更改。

如何在php代码上获得Post数据的响应?

如何通过远程post进行调试?

我的请求示例:

假设我使用

For,只在当时我的请求格式是。

代码语言:javascript
复制
ClientData%5B%5D=4&ClientData%5B%5D=kamlesh&ClientData%5B%5D=KAM&ClientData%5B%5D=Junagadh&ClientData%5B%5D=me&ClientData%5B%5D=SANTA+ROSA&ClientData%5B%5D=76220&ClientData%5B%5D=kamlesh.vadiyatar%40gmail.com&ClientData%5B%5D=9998305904&ClientData%5B%5D=false

For,

代码语言:javascript
复制
{"ClientData":["4","kamlesh","KAM","Junagadh","me","SANTA ROSA","76220","kamlesh.vadiyatar@gmail.com","9998305904",false]}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-22 12:35:08

如果我正确理解,您需要创建一个PHP服务,它能够接收来自客户端的类似REST的请求。

为了完成thad,您需要访问原始的POST数据。在PHP中,它是这样完成的:

代码语言:javascript
复制
$ClientData = file_get_contents('php://input');

您可以在php://input中阅读更多关于包装文件的内容。

当然,从客户端来说,数据需要使用POST方法作为原始数据发送,即作为字符串发送。您可以使用JSON.stringify()从对象中获取字符串,您已经这样做了。

如果您传递一个对象,它将由jQuery使用查询字符串格式在内部转换为字符串。在用于jQuery的$.ajax文档中会有更多的介绍(最重要的选项是dataprocessData)。

票数 7
EN

Stack Overflow用户

发布于 2013-05-08 06:15:45

只需将ajax数据param作为对象传递,不要将其转换为JSON。然后在PHP中直接使用$_POST。

使用firebug或chrome工具分析ajax请求并查看发送了哪些数据。

票数 3
EN

Stack Overflow用户

发布于 2013-05-08 06:22:37

使用这个简单的jquery函数来完成任务。

代码语言:javascript
复制
$.ajax({           
            type: "POST",  
            url:"scripts/dummy.php",  
            data:"tbl="+table,
            dataType:"json", //if you want to get back response in json

            beforeSend: function()
            {                   

            },
            success: function(resp)
            {               

            }, 

            complete: function()
            {

            },

            error: function(e)
            {  
            alert('Error: ' + e);  
            }  

    }); //end Ajax
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16433794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档