使用PHP代码创建的HTML出现了问题

3
我正在尝试创建管理面板并从数据库中获取一些数据到表格中,然后能够更改它。我有两个表单,一个称为searchForm,是用HTML代码创建的,表单在提交后工作正常。另一个表单(loadForm)是使用PHP代码动态创建的,该代码从SQL数据库中获取数据。PHP正常工作,我可以获得带有所有字段的表格,但问题是当我提交特定行时,我无法通过post方法获取值。我使用var_dump进行了检查,结果为0。此外,我无法更改表格的CSS属性。请帮忙解决。
    <?php

    include("config.inc.php");
    $lfname='';
    $llname='';
    $lphone='';
    $lemail='';
    $lcity='';
    $lphotos='';
    $fname='';
    $lname='';
    $phone='';
    $email='';

    if(isset($_POST['searchbtn'])){
        if (isset($_POST['fname'])) {
            $fname=$_POST['fname'];
        }

        if (isset($_POST['lname'])) {
            $lname=$_POST['lname'];
        }

        if (isset($_POST['phone'])) {
            $phone=$_POST['phone'];
        }

        if (isset($_POST['email'])) {
            $email=$_POST['email'];
        }
        var_dump($phone);
    }

    if (isset($_POST['savebtn'])){

        if (isset($_POST['lfname'])) {
            $lfname=$_POST['lfname'];
        }
        if (isset($_POST['llname'])) {
            $llname=$_POST['llname'];
        }
        if (isset($_POST['lphone'])) {
            $lphone=$_POST['lphone'];
        }
        if (isset($_POST['lemail'])) {
            $lemail=$_POST['lemail'];
        }
        if (isset($_POST['lcity'])) {
            $lcity=$_POST['lcity'];
        }
        if (isset($_POST['lphotos'])) {
            $lphotos=$_POST['lphotos'];
        }
        var_dump($lfname);
        }


        ?>
    <html>
        <head>
            <title>תמונה במתנה</title>
            <meta charset="utf-8">
            <link href="admin-style.css" rel="stylesheet" type="text/css">
            <script type="text/javascript" src="jquery.js"></script>

        </head>

        <body>
        <div id="container">
            <div id="customer-list">

            </div>
            <button type="button" id="loadbtn">טען</button>
            <div id="search">
                <form id="searchForm" action="admin.php" method="post">
                    שם פרטי:<input type="text" name="fname" id="fname">שם:
                    שם משפחה:<input type="text" name="lname" id="lname">
                    טלפון:<input type="text" name="phone" id="phone">
                    אימייל:<input type="text" name="email" id="email">
                    <input id="searchForm" type="submit" name="searchbtn" value="חפש" />
                </form>

            </div>
            <div id="serchList">

            </div>
            <div id="editCustomer">

            </div>
        </div>
                <script type="text/javascript">

                    $(document).ready(function() {  

                    showNoPicture();
                    alerta();



                    function showNoPicture() {


                         $("#loadbtn").click(function(){
                            var s = '                       <?php
    $link = mysql_connect($db_host,$db_user,$db_pass);
    if(!$link) die ('Could not connect to database: '.mysql_error());
    mysql_select_db($db_name,$link);
    mysql_query("SET NAMES 'utf8'");
        $i=0;
                        echo '<table border=1 cellspacing="0" cellpadding="0">';
                        echo '<tr>';

                        echo '<td>שם פרטי</td>';
                        echo '<td>שם משפחה</td>';
                        echo '<td>טלפון</td>';
                        echo '<td>אימייל</td>';
                        echo '<td>עיר</td>';
                        echo '<td>שעת רישום</td>';
                        echo '<td>מספרי תמונות</td>';
                        echo '<td>שמור</td>';
                        echo '</tr>';

                        $loadQuery="SELECT * FROM `claients` WHERE `eventreg_pictures` is null";
                        $result=mysql_query($loadQuery);
                        while($row= mysql_fetch_array($result)){
                            $client= $row;
                            $clients[]=$client;

                            echo '<tr>';
                            echo '<form id="loadForm" method="post" action="admin.php">'; 

                            echo '<td><input type="text" id="lfname" name="lfname" value="'.$client[1].'"/></td>';
                            echo '<td><input type="text" id="llname" name="llname" value="'.$client[2].'"/></td>';
                            echo '<td><input type="text" id="lphone" name="lphone" value="'.$client[3].'"/></td>';
                            echo '<td><input type="text" id="lemail" name="lemail" value="'.$client[4].'"/></td>';
                            echo '<td><input type="text" id="lcity" name="lcity" value="'.$client[5].'"/></td>';
                            echo '<td>'.$client[7].' ';
                            echo '<td><input type="text" id="lphotos" name="lphotos"/></td>';
                            echo '<td><input type="submit" id="savebtn" name=savebtn" value-"שמור"/></td>';
                            echo '</form>';
                            echo '</tr>';

                            }
                        echo '</table>';

                    ?>';
                            $("#customer-list").html(s);
                            //$("#customer-list").load('loadClient.php');
                            }); 

                    };



                    function alerta() {

                        $("#searchForm").click(function(){
                        s='<?php $searchEmail; ?>';
                        $("#customer-list").html(s);
                            }); 

                    };

        $(".btnClass").click(function(){
            alert('hi');
        //$("#customer-list").load('ghfgh.php');
        });         

    });
            </script>

        </body>
    </html>

如果您无法获取$_POST的值,那么您的HTML表单可能存在问题。请发布您的HTML代码。 - user1477388
1
@user1477388,上面发布的代码中HTML全部混在一起了。 - Mike
抱歉,我错过了这个问题。所以,如果你删除if语句,它是否可以工作?即删除if (isset($_POST['savebtn'])){ 编辑:看起来下面有一些很好的答案... - user1477388
请确保在 HTML 上下文中使用 htmlspecialchars() 来处理任何变量数据。这可以确保您创建的是有效的 HTML,并有助于减轻 XSS 攻击的风险。 - Brad
2个回答

4

修复html代码中的错误:

这里缺少引号:"

echo '<td><input type="submit" id="savebtn" name=savebtn" value-"שמור"/></td>';

应该是

echo '<td><input type="submit" id="savebtn" name="savebtn" value="שמור"/></td>';

您有重复的ID,searchForm被使用了两次。

3
这可能是您的问题所在:
   while($row= mysql_fetch_array($result)){
        $client= $row;
       $clients[]=$client;

       echo '<tr>';
      echo '<form id="loadForm" method="post" action="admin.php">'; 

form 标签移出 while 循环。可能会创建多个具有相同 id 的表单。您还重复了很多 id。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接