2012-05-08 16 views
1

私はこれに多くの経験がありません...大歓迎です。

$ id = $ _GET ["categoryID"];変数を設定していません。

$ _GET ["categoryID"]は値を返していますが、変数は設定されていません。

$ id = 3を使用して変数を設定できます。しかし、$ id = $ _GET ["categoryID"];動作しません。

<?php 
if (@$_REQUEST['ajax']) { 
     $link = $nm3; 
    if ($link == false) 
     trigger_error('Connect failed - ' . mysql_error(), E_USER_ERROR); 
    $connected = mysql_select_db('dgp', $link); 

    if ($connected) { 


     $id = $_GET["categoryID"]; 


     $results = mysql_query('select * from selectMenu where categoryID= \'' . $id . '\' AND category="' . strtolower(mysql_real_escape_string(strip_tags($_REQUEST['category']))) . '"'); 

     $json = array(); 
     while (is_resource($results) && $row = mysql_fetch_object($results)) { 
      //$json[] = '{"id" : "' . $row->id . '", "label" : "' . $row->label . '"}'; 
      $json[] = '"' . $row->label . '"'; 
     } 
     echo '[' . implode(',', $json) . ']'; 
     die(); // filthy exit, but does fine for our example. 
    } else { 
     user_error("Failed to select the database"); 
    } 
} 
?> 

[OK]をので、私は限り私はどのように知っているように、すべてをストリップダウン。問題はajaxリクエストに関連しているようです。

$ _GET .... $ id = $ _ GET ["categoryID"]を使用して削除されたコードです。 $ _GET ["categoryID"]結果と$ idを出力します。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Test $_GET</title> 
</head> 
<body> 
<?php 
     if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 
     $id = $_GET["categoryID"]; 
     } 
?> 
    print_r($_GET) = <?php print_r($_GET); ?> 
    <br /> 
    print_r($id) = <?php print_r($id); ?> 
</body> 
</html> 

そして、ここで投稿ページのサンプルです....

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>testPOST</title> 
</head> 
<body> 
<form action="testPOST.php" method="post"> 
    categoryID: <input type="text" name="categoryID" /><br /> 
    <input type="submit" value="Submit" /> 
</form> 
</body> 
</html> 

とPOST結果ページ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Test $_POST</title> 
    </head> 
    <body> 
    <?php 
      if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 
      $id = $_POST["categoryID"]; 
      } 
    ?> 
     print_r($_POST) = <?php print_r($_POST); ?> 
     <br /> 
     print_r($id) = <?php print_r($id); ?> 
    </body> 
    </html> 

それはまだ設定されていません$ id = $ _GET ["categoryID"];リクエストブロックの外側に印刷していても、あなたの助けをもう一度おねがいします。

+1

* "$ _GET [" categoryID "]は値を返していますが、変数は設定されていません。どのようにこれを確認していますか?問題を再現するために実際にこのコードのどれくらいが必要ですか? –

+1

そして、jQueryが正確にどこで動作するのですか? – Imp

+0

$ id = 2を使用すると、クエリは成功します。私が$ id = $ _ GET ["categoryID"]を使用すると、print_r($ _ GET);でもクエリは失敗します。 Array([categoryID] => 2) – John

答えて

1

問題は、あなたのフォームがPOSTであるか、フォームが正しく送信されていないように見えます。 $_GET['categoryID']をエコーアウトして、あなたが得たものを見てみてください。 $_GET["categoryID"]に値が含まれている場合

isset($_GET["categoryID") 

はtrueを返します:あなたはそれを$ IDを初期化しようとする前$_GET["categoryID"]が設定されていることを確認するために

+0

私は$ _POSTリクエストの側で、AJAXを介して提出されていることを明確に支持します。 $ _GETは可能ですが、$ _POSTはより一般的なアプローチです – Bryan

+0

$ id = 2を使用すると、クエリは成功します。私が$ id = $ _ GET ["categoryID"]を使用すると、print_r($ _ GET);でもクエリは失敗します。 Array([categoryID] => 2) – John

+0

上記のコードで、彼は 'POST'メソッドを使用していることを示していますか? – itachi

0

チェック。

+0

$ id = 2を使用すると、クエリは成功します。 私が$ id = $ _ GET ["categoryID"]を使用すると、print_r($ _ GET);でも検索が失敗します。 Array([categoryID] => 2) – John

+0

私は$ id = $ _GET ["categoryID"]を変更しました。 $ id = $ _POST ["categoryID"]に; 私はこのページの最後に、$ _POST ["categoryID"] = <?php print $ _POST ["categoryID"];を印刷しました。 ?> <?php print $ _POST ["categoryID"]; ?>は、参照ページのフォームに入力した数値を返します。 – John