Javascript PHP上的Jquery从不同的文件创建HTML内容

Javascript PHP上的Jquery从不同的文件创建HTML内容,javascript,php,jquery,html,mysql,Javascript,Php,Jquery,Html,Mysql,首先,对于PHP/AJAX,我是一个完全的初学者,如果我在下面的文章中没有正确地解释一些事情,我会提前表示歉意 长话短说:我正在用PHP/AJAX编辑用户内容创建一个简单的管理场景。但是,我不知道如何处理通过jQuery.post生成的HTML内容 简而言之: 我有一个admin_panel.php页面,可以生成所有用户的下拉列表。在下拉选择之后,我使用jQuery.post并将选择的用户名发送到info.php以获取关于该用户名的更多信息。php在表中回显所有查询的数据 现在,在这个PHP生成

首先,对于PHP/AJAX,我是一个完全的初学者,如果我在下面的文章中没有正确地解释一些事情,我会提前表示歉意

长话短说:我正在用PHP/AJAX编辑用户内容创建一个简单的管理场景。但是,我不知道如何处理通过jQuery.post生成的HTML内容

简而言之:

我有一个admin_panel.php页面,可以生成所有用户的下拉列表。在下拉选择之后,我使用jQuery.post并将选择的用户名发送到info.php以获取关于该用户名的更多信息。php在表中回显所有查询的数据

现在,在这个PHP生成的表中,每个信息块都放在一个“td”标记中,我将输入一个文本字段,我想使用另一个.post对其进行操作-我希望管理员能够对其进行更新

你们能告诉我怎么做吗?我尝试在回显内容中添加“script”标记,但不起作用,当我尝试从admin_panel.php中选择回显表时,也不起作用,这很简单,因为表不在源代码中,所以我无法从中选择id

admin_panel.php仅适用于相关内容

<select name='users' id='users'>
    <option value="" disabled selected>Select user</option>
        <?php
            $sql = mysql_query("SELECT * FROM users WHERE id <>'".$_SESSION['user_id']."'ORDER BY username DESC") or die(mysql_error());

                while($row=mysql_fetch_assoc($sql)){
                    $username=$row['username'];
                    echo "<option value='".$username."'>".$username.'</option>';
                }

        ?>
</select>
<script type="text/javascript">
    $(document).ready(function(){
        $('#users').change(function(event) {
            $.post('info.php', { selected: $('#users').val() },
                function(data) {
                    $('#user_info').html(data);
                }
            );            
        }); 
        $( '#about_change' ).focusout( function(){

            $.post( "update.php?about_change=true&userid=true", {
                    about_change : $ ('#about_change').val(),
                    userid : $user_id
                },
                function( data ){
                    $('#change_about_admin').html( data );
                }
            )   
        });
    });
    </script>
update.php


我相信您要做的是向用户显示一个用户下拉列表,选中后,将显示一个包含该用户详细信息的表格,其中包含一些由javascript触发的操作

我的建议是,保持你的文件模块化,这样你更容易管理。 根据我的理解,这里有一个非常基本的示例方法,使用我所知道的最佳实践。我希望你明白我的意思

users.php

processUser.php


希望这有帮助。干杯

变量$user\u id是在哪里定义的?您有一个uderid,我假设它是userid?userid是一个POST变量,假设它携带$user\u id。但是$user_id只在info.php中生成。这将是一个很长的解释。你的代码中有这么多的缺陷和错误实践……我会尽我最大的努力解决你的问题。这正是我所需要的,作为一个完全的初学者,我仍然需要学习如何使用良好的实践有效地编写代码。在对代码进行了一些修改之后,它现在工作得非常好。干杯!我曾经是个初学者,环顾四周很困难。希望这一个能帮助你在比我更短的时间内到达更远的地方。祝你一切顺利。
$selected = isset($_POST['selected']) ? $_POST['selected'] : 'nothing';
$sql=mysql_query("SELECT * FROM users WHERE username='".$_POST['selected']."'");
while($row = mysql_fetch_assoc($sql)){
    $user_id = $row['id'];
    $username = $row['username'];
    $name = $row['name'];
    $date = $row['date'];
    $email = $row['email'];
    $avatar = $row['avatar'];
    $about = $row['about'];
    $admin = $row['admin'];
}

echo("
<table id='user_table'>
<tr colspan='8'>
    <th>User ID</th>
    <th>Username</th>
    <th>Joined</th>
    <th>Name</th>
</tr>
<tr>    
    <td>".$user_id."</td>
    <td>".$username."</td>
    <td>".$date."</td>
    <td>".$name."<br/><a class='change_admin' href='#'>Change</a></td>
</tr>
<tr colspan='8'>
    <th>About</th>
    <th>E-mail</th>
    <th>Avatar</th>
    <th>Admin</th>
</tr>
<tr colspan='8'>

    <td>".$about."<br/><a id='change_about_admin' href='#'>Change</a><br/><input type='text' id='about_change' name='about_change'></td>
    <td>".$email."<br/><a class='change_admin' href='#'>Change</a></td>
    <td><img class='avatar_small' src='$avatar' /><br/><a class='change_admin' href='#'>Delete</a></td>
    <td>");

    if(isAdmin($user_id) == 1){
        echo "Yes";
    }
    else
        echo "No";

echo ("<br/><a class='change_admin' href='#'>Change</a></td>
</tr>
<tr>
    <td colspan='8'>
        <a href='#'>DELETE THIS ACCOUNT</a>
    </td>
</tr>
</table>

");
if(isset($_POST['about_change']) && isset($_POST['uderid'])){
    $about_change = $_POST['about_change'];
    $userid = $_POST['userid'])
    echo update($userid, 'about', $about_change);
}
<?php
    // Get your users from DB and tabulate into $userList. 
    $username = 'Example';
    $userlist = [];
    $userList .= '<option name="userID" value="$userID">'.$username.'</option>'
?>
<select id="users">
    <option selected>Select Users</option>
    <?php echo $userList; ?> <!-- This will be generated by php in the script below -->
</select>
<section id="userDetailContainer">
    <!-- This will contain the user detail table -->
</section>
// Include the javascript.
<script src="functions.js"></script>
$(function(){
    var theURL = 'processUser.php'
    var data = {}
    $('#users').on('change', function(){
         data.command = 'displayUser'
         data.userID = $(this).val()
         $.post(theURL, data, function(result){
             $('#userDetailContainer').html(result)
         })
    })

    // This is where you assign event on dynamic contents.
    $('#userDetailContainer').on('focusout', '#username', function(e){
        data.username = $(this).val()
        data.command = 'updateUsername'
        $.post(theURL, data, function(result){
            //Do what you want with the response.
            console.log(result)
        })
    })
})
<?php
    //Insert MySQL here...
    if(isset($_POST['command']){
        $cmd = $_POST['command'];
        $userID = $_POST['userID'];
        $username = 'Example';
    }
    switch($cmd){
        case 'displayUser':
            // Insert your user details here. Below is an example of an input
            echo '<input id="username" type="text" placeholder="Update Username" value="$username" />'
        break;
        case 'updateUsername':
            echo 'Username Updated!'
        break;
        //Insert other cases for other commands from Javascript
    }
?>