2014-11-11 4 views
0

저는 JQuery Mobile과 PHP를 사용하여 응용 프로그램을 작성하고 있습니다.

문제 : $ _GET은 URL의 값을 검색하지 않고 하나의 JQuery 모바일 페이지 (예 : # page1에서 # page2, Ajax 및 PHP 사용)에서 값을 전달하려고 시도합니다.

URL은 다음과 같이 표시됩니다

을 myApp/#의 PAGE3을 FID 우유 + 치즈 + 버터

PHP =이 "?fid="을 얻을 수 없습니다?.

이 문제는 JQuery 모바일 (단일 페이지)을 사용하여 URL을 설정하는 방법에 문제가 있음을 알 수 있습니다. 이 문제를 해결하는 데 큰 도움이 될 것입니다. 감사합니다

내 아약스 (조각) :

request.onreadystatechange = function(){ 
    if((request.readyState==4) && (request.status==200 || request.status == 304)) { 
     if(request.responseText!= undefined){ 
      window.location.replace('#page3?fid='+request.responseText+''); 
     } 
    } 
} 

먼저 PHP 페이지 :

<?php 
    include '../connect/connect.php'; 
    $ingredients = $_POST['ingredients']; 
    if (empty ($ingredients) === false){ 
     foreach($ingredients as $key => $ingre){ 
      if ($ingre != 'undefined'){ 
       $refine = substr($ingre, "4"); 
       $refined = mysqli_real_escape_string($con, $refine); 
       echo $refined; 
      } 
     } 
    } 
?> 

두 번째 PHP 페이지 :

<?php 
    if (isset($_GET['fid'])) { 
     echo 'yes'; 
    } else { 
     echo 'no'; 
    } 
?> 
+1

그것은 당신이 해시 기호 후 GET 문자열이 나타납니다. PHP는 해시 서명 후에 아무 것도 얻지 못합니다. 그것은 브라우저에 의해 제거되고 결코 서버로 전송되지 않습니다. –

+0

예, 그게 제가 생각한 것입니다. 그러나 JQuery 모바일은 페이지 사이를 이동할 때 #가 있어야합니다. ...이 주변에 방법이 있을까요? –

+0

js에서 해시 문자열을 파싱하고 그 바코드를 가져 오십시오. –

답변

1

해시 (모든 것이 # 문자에서 시작)는 서버로 보내지지 않습니다. 해시는 소위 쿼리 문자열 후, URL의 끝에 있어야한다, 그래서 적절한 URL은 다음과 같습니다

myApp/?fid=Milk+Cheese+Butter#page3 
관련 문제