2011-07-29 2 views
2

Я пытаюсь найти об этом, но я просто не могу найти то, что может решить мою проблему. Я хочу, чтобы произвести URL, как на это, чтобы отправить запрос на мой веб-сервиса:мой PHP не может отправлять данные на мой url

http://localhost/jQueryStudy/RamagalHTML/processjson3.php? path=update%2FtallyHdr&json= {"SessionID":"hHuCG3Jt1um5gV7kE320Bw7EjG97I4qZ","operation":"add", "transaction_date":"2011-7-29","supplier_id":"10000000108","wood_specie_id":"1", "lines":[{"plank_number":"7","thickness":"5","width":"8","length_t":"8","quantity":"1","board_foot":"26.67","wood_classification_id":"1","price":"15"}],"scaled_by":"WER","tallied_by":"WE","checked_by":"WE","total_bdft":"580.00","final":"N"}

Вот мой текущий Javascript код, который я прямо сейчас:

var dataJSON = { 
    "SessionID": $.cookie("SessionID"), 
    "operation": "add",  
    "transaction_date":$('#tallyDate').val(), 
    "supplier_id":$('#supplierInput').attr("name"), 
    "wood_specie_id":$('#woodSpecie').attr("name"), 
    "lines":plank_data, 
    "scaled_by":$('#tallyScaled').val().toUpperCase(), 
    "tallied_by":$('#tallyTallied').val().toUpperCase(), 
    "checked_by":$('#tallyChecked').val().toUpperCase(), 
    "total_bdft":$('#tallyTotal').val(), 
    "final":"N" 
    }; 
    alert('this is the datajson from add : ' + JSON.stringify(dataJSON)); 

    $.ajax({ 
    type: 'POST', 
    data: dataJSON, 
    url: 'processjson2.php?path=update/tallyHdr', 
    dataType: primeSettings.ajaxDataType, 
    success: function(data) { 
     if ('error' in data) 
     { 
     showMessage('ERROR: ' + data["error"]["msg"]); 
     } 
     else{ 
     $('#tblTallyHdr').trigger('reloadGrid'); 
     } 
    } 
    }); 

Мой .php код это:

<?php 
    $data_url = http_build_query (array('json' => $_REQUEST["json"])); 
    $data_len = strlen ($data_url); 

echo file_get_contents("http://localhost:8001/" . $_REQUEST["path"], false, stream_context_create(
    array (
     'http' => array(
      'method'=>'POST', 
      'header' => "Connection: close\r\nContent-Length: $data_len\r\n", 
      'content'=>$data_url 
     ) 
    ) 
)); 

Evrytime Я запускаю свою программу, url это только http://localhost/jQueryStudy/RamagalHTML/processjson2.php?path=update/tallyHdr, данные не были отправлены, что делает мой запрос не выполнен. Пожалуйста помоги мне с этим. Я не знаю, как исправить мой php.

+0

'информация Post' не передается в URL таким же образом, как' GET'. Когда вы говорите, что не видите его в URL-адресе, как вы его наблюдаете? –

+0

В firebug, я вижу это в моей консоли, что у моего url нет необходимых данных. И я также отслеживаю в своей программе delphi, где я пишу код mmy webservce. Мой запрос json имеет значение null. – jayAnn

ответ

2

Если вы хотите, чтобы все ваши данные отправлялись как часть URL-адреса, вы должны использовать GET, а не POST.

Это поэтому возможно избавиться от собственности данных и добавить все к запросу URL:

$.ajax({ 
    type: 'GET', 
    url: 'processjson2.php?path=update/tallyHdr&json='+dataJSON, 
    dataType: primeSettings.ajaxDataType, 
    success: function(data) { 
     if ('error' in data) 
     { 
     showMessage('ERROR: ' + data["error"]["msg"]); 
     } 
     else{ 
     $('#tblTallyHdr').trigger('reloadGrid'); 
     } 
    } 
    }); 

Если вы должны использовать POST, то вам просто необходимо предоставить имя переменной, чтобы пойти с JSON:

$.ajax({ 
    type: 'POST', 
    data: "json="+dataJSON, 
    url: 'processjson2.php?path=update/tallyHdr', 
    dataType: primeSettings.ajaxDataType, 
    success: function(data) { 
     if ('error' in data) 
     { 
     showMessage('ERROR: ' + data["error"]["msg"]); 
     } 
     else{ 
     $('#tblTallyHdr').trigger('reloadGrid'); 
     } 
    } 
    }); 

Для получения дополнительной информации, смотрите примеры в конце страницы: http://api.jquery.com/jQuery.ajax/

+0

Это был мой код раньше, но поскольку есть вероятность, что я отправлю многие данные запроса в мой веб-сервис, использование метода 'get' не будет выполнять его из-за ограничения строки запроса. Поэтому у меня нет другого выбора, кроме как использовать метод POST. – jayAnn

+0

Обновленный ответ. – shanethehat

+0

Я не знаю, но он все еще не работает. Выход такой же. – jayAnn

Смежные вопросы