2017-08-08 20 views
0

私のドロップダウンリストには、ユーザが投稿したすべての "pack_name(s)"を入れて、ユーザが選択して更新するためにリストに表示します。ユーザーが1つを選択してサブミットすると、その "値"をサブミットして後の目的で使用したいのですが、リサーチしていて、htmlで "プリセット"値しか見つからず、値がJqueryを使って与えられました。だから、基本的に "pack_name"を選択して、ユーザーが送信したときに選択した値をエコーアウトすることができるかどうかは疑問です。PHPはhtmlドロップダウンリストから選択した値をエコーし​​ます

PHP

<?php 
session_start(); 

if(empty($_FILES) && empty($_POST) && isset($_SERVER['REQUEST_METHOD']) && strtolower($_SERVER['REQUEST_METHOD']) == 'post'){ //catch file overload error... 
     $postMax = ini_get('post_max_size'); //grab the size limits... 
     echo "<p style=\"color: #F00;\">\nPlease note files larger than {$postMax} will result in this error!</p>"; // echo out error and solutions... 
     return $postMax; 
    } 

if(isset($_COOKIE['id'])){ 

    if($_SESSION['came_from_upload'] != true){ 

     setcookie("id", "", time() - 60*60); 
     $_COOKIE['id'] = ""; 
     header("Location: developerLogin.php"); 
     exit; 


    } 

    try{ 

     // new php data object 
     $handler = new PDO('mysql:host=127.0.0.1;dbname=magicserver', 'root', ''); 
     //ATTR_ERRMODE set to exception 
     $handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

     }catch(PDOException $e){ 
      die("There was an error connecting to the database"); 

     } 
     $userid = $_SESSION['id']; 
     $stmt = $handler->prepare("SELECT * FROM pack_profile WHERE pack_developer_id = :userid"); 
     $stmt->bindParam(':userid', $userid, PDO::PARAM_INT); 
     $stmt->execute(); 
     echo "<select>"; 

     while($result = $stmt->fetch()){ 
     echo "<option>" . $result['pack_name'] ."</option>"; 
     } 

     echo "</select>"; 

    if($_SERVER['REQUEST_METHOD'] =="POST"){ 
     $token = $_SESSION['token']; 


} 
} 


?> 
+0

コードの一部は機能していませんか?より具体的にしてください。何かエラーがありますか? – Difster

+0

エラーはありません、私は選択された結果をエコーし​​ようとしています。私は私の説明で非常に具体的です。 – Jagr

答えて

1

あなたはselect要素にname属性を与え、そして各option要素にvalue属性を与える必要があります。例えば

:あなたは&<または"htmlspecialchars()ようなもので含まれている可能性が何かをエスケープする必要があります。もちろん、

echo "<select name=\"pack\">"; 

    while($result = $stmt->fetch()){ 
    echo "<option value=\"" . $result['pack_name'] . "\">" . $result['pack_name'] ."</option>"; 
    } 

    echo "</select>"; 

+0

ああ、私はちょうど "結果"をエコーし​​ます – Jagr

+0

結果は '$ _POST ['pack']'または '$ _GET ['pack']'にあります。セッションやファイルのアップロード、実際には$ _POSTというコードでも高度なコンセプトは既にありますが、フォームの仕組みの基礎を理解できていないようですので、あなたの質問は混乱します。私はあなたがフォーム要素を出力していると仮定しています。例えば、 '

' somewhere?あなたのコードにはありません。 – thomasrutter

+0

昨日は頭がおかしくなってしまって申し訳ありませんが、エコー$ _POST ['pack'} "を試してみました。"(!)通知:未定義のインデックス:C:\ wamp64 \ www \ MT \ developer_packupdater.php on line 48 " – Jagr

関連する問題