Получить данные Ajax POST на php через Javascript-вызов
сначала я conface, что я Новичок to php
,
Я использую jquery (knockout js) на стороне клиента и PHP на стороне сервера. мой код.
стороне клиента: я использую knockout js(Javascript)
. для вызова моего PHP-сервиса.
Мой Код:
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 Код:
public function SaveClient($userToken)
{
$value = json_decode($Clientdata);
echo $value->ClientData[0];
}
*Мой Вопрос *:
- я не понимаю, как размещать данные в PHP ? Я пробовал с
$_POST['']
метод, а также многие другие. - я использую затмение как PHP-фреймворками. таким образом, не удается отладить его, когда я публикую данные.В обычном режиме я могу отлаживать свой код.но не издалека.для этого я внес изменения на также.
как получить ответ данных Post на php-коде ?
как отлаживать через удаленную почту ?
мой пример запроса:
предположим я использую:
для data: params,
только в это время мой формат запроса.
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
для data: JSON.stringify(ko.toJS(params)),
{"ClientData":["4","kamlesh","KAM","Junagadh","me","SANTA ROSA","76220","kamlesh.vadiyatar@gmail.com","9998305904",false]}
4 ответов
если я правильно понимаю, вам нужно создать PHP-сервис, который способен получать REST-подобные запросы от клиента.
для того, чтобы сделать thad вам нужно получить доступ raw POST data. В PHP это делается так:
$ClientData = file_get_contents('php://input');
вы можете прочитать больше о php://input
на фантики документации.
конечно, со стороны клиента данные должны быть отправлены с использованием метода POST и в качестве необработанных данных, т. е. в виде строки. Вы можете получить строку из объекта с помощью JSON.stringify()
который вы уже делаете.
если вы передадите объект, он будет преобразован в строку внутри jQuery с помощью формата строки запроса. Подробнее об этом в документация jQuery для $.ajax (наиболее importatnt параметры, являющиеся data
и processData
).
просто передайте AJAX data param как объект, не преобразуйте его в JSON. Затем в PHP используйте $_POST напрямую.
используйте firebug или chrome dev tools для анализа запроса ajax и посмотреть, какие данные отправляются
используйте эту простую функцию jquery для выполнения вашей задачи
$.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
В использовать PHP:
if(isset($_POST['ClientData'])){
$client_data = $_POST['ClientData']
}
теперь $client_data
переменная должна содержать array
.
для отладки вы можете использовать встроенный php