2011-07-29 4 views
2

나는 이것에 대한 검색을 시도하지만 난 내 문제를 해결할 수있는 모든 것을 찾을 수 없습니다.내 PHP는 내 URL에 데이터를 게시 할 수 없습니다

:

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 코드는 이것이다 :

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"}

여기 내가 지금이 내 현재 자바 스크립트 코드입니다 : 내 웹 서비스에 요청을 보내려면이 좋아 나는 URL을 생성 할
<?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 정보가 GET''와 같은 방식으로 URL에 전송되지 않습니다. URL에서 볼 수 없다고 말하면 어떻게 관찰하고 있습니까? –

+0

방화 광에서 콘솔에 내 URL에 필요한 데이터가 부족하다는 것을 알 수 있습니다. 그리고 나는 또한 내 델피 프로그램에서 어디서 mmy webservce 코드를 작성하는지 추적한다. 내 json 요청이 null입니다. – jayAnn

답변

2

모든 데이터를 URL의 일부로 보내려면 POST가 아닌 GET을 사용해야합니다. 당신이 POST를 사용해야하는 경우

$.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'); 
     } 
    } 
    }); 

는, 당신은 당신의 JSON과 함께 갈 수있는 변수 이름을 제공해야합니다

이 떨어져 데이터 속성을 수행하고 요청 URL에 모든 것을 추가하는 것이 가능합니다 :

$.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

관련 문제