0

さまざまなフィールドを持つ複数の行を持つデータベースがあります。

ドロップダウン リストを含むフォームがあります。ドロップダウン リストには、データベースの各行のデータベース フィールド (field_name) の 1 つが表示されます。

ユーザーが目的のエントリを選択して SUBMIT を押すと、その値が results.php ページに渡され、$_POST 経由で使用できるようになります。

これはすべて現在機能しています。

選択したフィールドの行に対応する行の残りのフィールド (「field_name」だけでなく) を、ドロップダウン メニューから選択したものと共にデータベースから送信する方法が必要です。

たとえば、「名前」、「日付」、「年齢」という名前のフィールドを持つ行を持つデータベースがある場合、すべてのデータベース行「名前」がドロップダウン リストに表示され、送信されると、そのページで使用するために、その特定の名前の「日付」と「年齢」を results.php に渡します。

<html>
<head>
<title>Drop Down Test</title>
</head>

<body style="font-family: verdana; font-size: 11px;">

<?php

//Variables for connecting to database.
$hostname = "abcd";
$username = "abcd";
$dbname = "abcd";
$password = "abcd";
$usertable = "abcd";

//Connecting to database
$connection = mysql_connect($hostname, $username, $password) OR DIE ("Unable to connect to database!");
$db = mysql_select_db($dbname);

$query = "SELECT * FROM abcd";
$result = mysql_query($query) or die(mysql_error());

?>

<h2>Drop Down Test Form</h2>

<p>Please fill out the form below and click submit.</p>

<form action="results.php" method="POST">

    <p>Drop Down Test:
        <select name='event'>
        <!-- Drop down -->
        <?php
        while($row = mysql_fetch_array($result))
    {
        echo '<option>' . $row['field_name']. '</option>';
            }
        ?>
    </select>

    <p><input type="submit" value="Submit"><p>

</form>

4

3 に答える 3

0

これは(results.phpで)トリックを行いました:

<?php

$hostname = "****";
$username = "****";
$dbname = "****";
$password = "****";
$usertable = "abcd";

$connection = mysql_connect($hostname, $username, $password) OR DIE ("Unable to connect to database!");
$db = mysql_select_db($dbname);

//it was this SQL query that was the key, namely the WHERE statement
$query = "SELECT * from abcd where field_name='$_POST[event]'"; 

$result = mysql_query($query) or die(mysql_error()); 
$row = mysql_fetch_row($result); 

echo "id: " . $row[0] . "<br/>";
echo "field_name: " . $row[1] . "<br/>";
//etc...

//try to throw the individual results into variables
$variable = $row[1];

echo "Check to see that the variable was passed a value: " . $variable . "<br />"; 
echo "Check to see that form selection carried over: " . $_POST['event'] . "<br />"; 

?>

これは「最新」の方法ではないことを認識しており、すべてを「最新化」しようとしています。

助けてくれてありがとう!

于 2013-04-05T17:17:58.457 に答える
0

value次のようにオプションを付ける必要があります。

echo '<option value = "'.$row['field_name'].'" name = "">' . $row['field_name']. '</option>';

その後、次の方法でアクセスできます$_POST['event'];

アップデート

選択からすべての値を取得したら、$_SESSION変数を使用してそれを他の php.file に渡すことができます。

于 2013-04-05T01:11:40.187 に答える
0
  //  First of all, I advice you to connect via PDO, or at least msqli, because mysql_query is depreciated.
  //  To connect with database you need:
  DEFINE("USER", "root"); 
  DEFINE("DBNAME", "test"); 
  DEFINE("DBPASSWORD", ""); 
  DEFINE("DBHOST", "localhost");
  $dbh = new PDO('mysql:host='.DBHOST.';dbname='.DBNAME,USER,DBPASSWORD,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));


   //The query:
   $sth = $dbh->prepare("SELECT name,age,date FROM test");
   $sth->execute();

  //the drop down form
    echo '<form action="results.php" method="POST">
    <select name="event"><option value=0></option>';
    while ($result = $sth->fetch(PDO::FETCH_ASSOC)) { extract($result);
    echo '<option value="date:'.$date.'-age:'.$age.'"/>'.$name.'</option>'; 
    echo '</select>
        <p><input type="submit" value="Submit"><p>
    </form>';
    }

//the event in the records.php by clicking submit
if(isset($_POST['event'])){
echo 'name:',$name'-date:',$date,'-$age',$age;
}
于 2013-04-05T01:12:35.490 に答える