0

PHP を使用して、データベースの値に基づいてオプション リストに名前を入力しています。名前が選択されたら、選択された名前に基づいて行の値を設定したいと思います。

オプション リストに名前の値を入力するのに問題はありませんでしたが、名前を選択すると、その行のレコードが入力ボックスに表示されません。

ここに私が取り組んでいるコードがあります:

$query = "SELECT name, id 
FROM artists 
ORDER BY name";

$mysql_stuff = mysql_query($query, $mysql_link);
while($row = mysql_fetch_row($mysql_stuff)) {

 $artists_name = htmlspecialchars(stripslashes($row[0]));
 $artists_id = stripslashes($row[1]);

    // we compare the id of the record returned and the one we have selected
    if ($artists_id) { 
        $selected = $artists_id;
    } else {
        $selected = "";
    }
    print("<option value=\"$artists_id\">$artists_name</option>
    ");
}

print("</select>
<input type=\"Submit\" name=\"submit\" value=\"Update\">
<input type=\"Submit\" name=\"delete\" value=\"Delete\">

<br >
<br />
Edit Biography:
</td>
</tr>
");

if (isset($_POST['submit'])) {
    print("<tr valign=\"top\">
    <td valign=\"top\" width=\"150\">Name</td>
    <td valign=\"top\">Artist Biography</td>
    </tr>

    ");


    print("<tr valign=\"top\" bgcolor=\"$colour\">
    <td valign=\"top\">
    <input type=\"text\" name=\"artists_name[$selected]\" value=\"$artists_name\" size=\"40\" />
    </td>

    <td valign=\"top\">
    <textarea name=\"artists_Biography[$selected]\"  cols=\"40\" rows=\"10\">$artists_Biography</textarea>
    </td>


    </tr>
    ");

}   


print("</table>
</form>
");

選択した名前の値を入力ボックスに入力する方法を教えてください。

4

2 に答える 2

0

したがって、アーティスト ID を投稿に送信します。その後、投稿によってページが更新または変更されます。アクションが、投稿に ID があるページであると仮定します。IDからアーティスト名を取得するにはどうすればよいですか? ID に対して別の SQL クエリを実行して名前を見つけますか? 役立つように、コードの順序を明確にする必要がある場合があります。ありがとう

于 2012-08-11T00:03:29.883 に答える
0

このコードを解釈する方法がわかりません。Ajax を使用します。change() メソッドで Jquery を使用して、select の値を取得し、ajax() を介して、DB から情報を取得し、必要なものを返す php スクリプトに送信します。次に、.ajax() メソッドの Success 部分を使用して、そのデータをフォームに入力します。

$(function(){
    $("select#artist").change(function() 
    {
        var artist = $("select#artist").val();
    $.ajax({
    type: "POST",
    url: "ajax-find-artist.php",
    data: "artistID=" + artist, 
    cache: false,
    success: function(html){
    var newElems = html;
    $("input#artistRestult").html(newElems);
    }
    });
    });
});
于 2012-08-13T16:26:10.033 に答える