1

これをもう一度試してみましょう。ドロップダウンメニューが、プルするデータと同じ行に表示されるようにします。次に、必要に応じて行を追加できます。

つまり、基本的にアイテムを選択したいのですが、同じ行にアイテムのプロパティが表示されます。次に、ボタンをクリックするだけで行を追加します。

テーブルは次のようになります。

これは私がこれまでに持っているものです:

HTML:

 <div id='main'>
              <!--Dropdown Will not work inside of table-->
         <select id='ddName' onchange="showUser(this.value)"> 
                <option id='none'>Select a Food:</option>
                <?php $sql = new Mysql(); $sql->diary(); ?>
                </select>
         <input type='button' id='addRows' value='Add Rows'/> 
        <table id="diary">
        <thead>
            <tr>
                <th scope="cols">Check</th>
                <th scope="cols">Name</th>
                <th scope="cols">Units</th>
                <th scope="cols">Amounts</th>
                <th scope="cols">Calories</th>
                <th scope="cols">Sugars</th>
            </tr>
            </thead>
            <tbody>
               <tr id='txtHint'></tr>
            </tbody>
            </table>
    </div>  

ドロップダウン用のAjax:

//Retrived from w3schools.com
function showUser(str)
    {
    if (str=="")
      {
      document.getElementById("txtHint").innerHTML="";
      return;
      } 
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET","classes/ajax.php?q="+str,true);
    xmlhttp.send();
    }        

テーブルを埋めるためのPHP:

//Retrived from w3school.com 
$q=$_GET["q"];

require_once dirname(dirname(__FILE__)).'/includes/constants.php';

$con = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or 
                  die('There was a problem connecting to the database.');

$result = $con->query("SELECT * FROM ingredient WHERE name = '".$q."'");


while($row = $result->fetch_array())
 {
   echo "<td><input type='checkbox' /></td>";
   echo "<td>".$row['Name']."</td>";
   echo "<td>" . $row['Units'] . "</td>";
   echo "<td>" . $row['Amount'] . "</td>";
   echo "<td>" . $row['Calories'] . "</td>";
   echo "<td>" . $row['Sugar'] . "</td>";
   echo "</tr>";
 }
4

1 に答える 1

1

私は自分の問題を理解することができました。2 つの php コードをこの 1 つに結合しました。

PHP 修正:

$q=$_GET["q"];

require_once dirname(dirname(__FILE__)).'/includes/constants.php';

$con = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or 
                  die('There was a problem connecting to the database.');

$result = $con->query("SELECT * FROM ingredient WHERE Name = '".$q."'");
$dd     = $con->query("SELECT * FROM ingredient");

if($q == 'Select a Food:')
{
   echo "<td><input type='checkbox' /></td>";
   echo "<td><select id='ddName' onchange='showUser(this.value)'>";
   echo "<option id='none'>Select a Food:</option>";
   while($ddrow = $dd->fetch_assoc())
     {
       if($ddrow['Name'] != $q)
          {
            echo "<option value='".$ddrow['Name']."'>".$ddrow['Name']."</option>";
          }
       else
          {
            echo "<option value='".$ddrow['Name']."' selected='selected'>".$ddrow['Name']."</option>";
          }
     }
   echo "</select></td>\n";
   echo "<td></td>";
   echo "<td></td>";
   echo "<td></td>";
   echo "<td></td>";
   echo "</tr>";
}

else{

 while($row = $result->fetch_array())
   {
    echo "<td><input type='checkbox' /></td>";
    echo "<td><select id='ddName' onchange='showUser(this.value)'>";
    echo "<option id='none'>Select a Food:</option>";
        while($ddrow = $dd->fetch_assoc())
     {
      if($ddrow['Name'] != $q)
      {
        echo "<option value='".$ddrow['Name']."'>".$ddrow['Name']."  </option>";
      }
      else
      {
          echo "<option value='".$ddrow['Name']."' selected='selected'>".$ddrow['Name']."</option>";
      }
    }
      echo "</select></td>\n";
      echo "<td>" . $row['Units'] . "</td>";
      echo "<td>" . $row['Amount'] . "</td>";
      echo "<td>" . $row['Calories'] . "</td>";
      echo "<td>" . $row['Sugar'] . "</td>";
      echo "</tr>";
    }
}
于 2012-08-09T00:27:08.300 に答える