2013-07-21 3 views
0

내 문제는 :이처럼, 자바 스크립트에 POST 요청을 통해 변수 "데이터"를 얻을 :구분 데이터를 게시 요청을 통해 수신

var data = name1 text1 name2 text2 name3 text3; 

가 어떻게이 같은 변수에 각 데이터 요소를 분할 할 : 형성 할 각 그룹 (변수)에서 다음 자바 스크립트 함수 "분할()"문자열 처리 "-"

var group1 = name1 - text1; 
var group2 = name2 - text2; 
var group3 = name3 - text3; 

는 그럼 난, PHP에서 문자를 구분을 넣어하기로 결정했다. 문제는 텍스트에 "-"문자와 다른 문자가있을 수 있다는 것입니다. 예를 들어 JSON을 사용하지 않고 어떻게 saparare를 수행 할 수 있습니까? 나는 서버 쪽 (PHP)이나 클라이언트 쪽 (자바 스크립트)을 모두 제어한다.

+0

'데이터'의 형식을 제어 할 수 있다면 문자열보다는 배열로 전달할 것을 제안합니다. – Teemu

+0

이것이 가능합니까? 변수 "data"는 POST 요청의 서버 응답입니다. JSON을 사용하지 않고 배열을 얻으려면 어떻게해야합니까? – user2584820

+0

'var data = name1 text1 name2 text2 name3 text3;'는 유효하지 않습니다. 자바 스크립트, 당신은 * 정말로 *하고 있습니까? 실제로 작동하는 몇 가지 최소한의 코드를 보여줌으로써 우리가하는 일을 알고 있으므로 추측하지 않고 질문에 대답 할 수 있습니다. –

답변

0

나는 PHP 코드가 어떻게 생겼는지에 대해 폭넓게 가정 할 것입니다. 나는 (실제로 작동하지 않을 수 있습니다 내 머리 위로 떨어져)는 다음과 같습니다 상상 :

$response = ''; 
mysql_query('select name, text from mytable'); 
while ($row = mysql_fetch_assoc()) { 
    $response = $row['name'] . ' ' . $row['text'] . ' ' .$response; 
} 
echo $response; 

대신이 같은 객체로 응답해야합니다

$response = array(); 
mysql_query('select name, text from mytable'); 
while ($row = mysql_fetch_assoc()) { 
    $response[$row['name']] = $row['text']; 
} 
echo json_encode($response); 

그런 다음, 자바 스크립트,

var data = {"name1": "text1", "name2": "text2", "name3": "text3"}; 

그리고 당신은이처럼 그룹을 만들 수 있습니다 : 그것은 다음과 같이 표시됩니다

var groups = []; 
for (var name in data) { 
    groups.push(name + " - " + data[name]); 
} 

원하는 그룹의 배열을 만들 수 있습니다.

관련 문제