Получить данные Ajax POST на php с помощью вызова Javascript
Сначала я признаюсь, что я Новичок в 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 код для подключения к БД.
PHP-код:
public function SaveClient($userToken)
{
$value = json_decode($Clientdata);
echo $value->ClientData[0];
}
* Мой Вопрос *:
- Я являюсь не ясно, как ПУБЛИКОВАТЬ данные в PHP? Я попробовал использовать метод
$_POST['']
, а также многие другие. - Я использую eclipse в качестве php-фреймворка. поэтому я не могу отлаживать его при публикации данных. В обычном режиме я могу отлаживать свой код. но не удаленно.для этого я также внес изменения в файл
php.ini
.
Как получить ответ на публикацию данных о 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","[email protected]","9998305904",false]}
4 answers
Если я правильно понимаю, вам нужно создать PHP-сервис, который способен получать запросы типа REST от клиента.
Для этого вам необходимо получить доступ к необработанным почтовым данным . В PHP это делается так:
$ClientData = file_get_contents('php://input');
Вы можете прочитать больше о php://input
в документации по оболочкам .
Конечно, со стороны клиента данные должны быть отправлены с использованием метода POST и в виде необработанных данных, т. Е. в виде строки. Вы можете получить строку из объекта, используя JSON.stringify()
что вы уже делаете.
Если вы передадите объект, он будет внутренне преобразован в строку с помощью jQuery с использованием формата строки запроса. Подробнее об этом в документации jQuery для $.ajax (наиболее важными опциями являются data
и processData
).
Просто передайте параметр данных ajax как объект, не преобразуйте его в JSON. Затем в PHP используйте $_POST напрямую.
Используйте инструменты firebug или chrome для разработки, чтобы проанализировать запрос 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 print_r()
. Это довольно удобно.
Вот пример:
//make sure it's post request
if(isset($_POST)){
//now print the array nicely
echo "<pre>";
print_r($_POST);
echo "</pre>";
}