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

我不确定如何解释这段代码。使用阿贾克斯。在 change() 方法上使用 Jquery 获取选择的值并通过 ajax() 将其发送到从数据库获取信息并返回所需内容的 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 回答
0

因此,您将艺术家 ID 提交到帖子中。然后该帖子将刷新或更改页面。假设该操作是您在帖子中有 ID 的页面。如何从 ID 中获取艺术家姓名?您是否在 id 上运行另一个 sql 查询来查找名称?可能需要对您的代码顺序进行一些说明以提供帮助。谢谢

于 2012-08-11T00:03:29.883 回答