【问题标题】:Why does my form not appear when I click the button?为什么单击按钮时我的表单没有出现?
【发布时间】:2018-12-05 08:41:04
【问题描述】:

这是我用于按钮的代码。它出现了,并且该按钮是可点击的。

foreach ($result as $pers) {
    echo ('<form>');
    echo ('<h3>Naam</h3>');'<br>';
    echo "<input type='submit' name='nameupdate' value='$pers->name' data-href='?persUp=".$pers->username."&persDa=".$pers->name."'>";
    echo ('</form>');
}   

当我单击按钮时应该创建此表单,但它没有出现。 echo dabdab 也没有出现。

if(isset($_POST['nameupdate']))
{
    echo('dabdab');
    if(isset($_GET['persDa']))
    {
        $did = $_GET['persDa'];
        echo "<input type='text' name='nmbox' value='$did'>";
        echo "<input type='submit' name='nmupdate' value='Update'>";
    }
}     

我做错了什么?请告诉我。

Javascript

$(document).ready(function() {
//Function for preview image.
$(function() {
    $(":file").change(function() {
        if (this.files && this.files[0]) {
            var reader = new FileReader();
            reader.onload = imageIsLoaded;
            reader.readAsDataURL(this.files[0]);
        }
    });
});
function imageIsLoaded(e) {
    $('#message').css("display", "none");
    $('#preview').css("display", "block");
    $('#previewimg').attr('src', e.target.result);
};


//Function for deleting preview image.
$("#deleteimg").click(function() {
    $('#preview').css("display", "none");
    $('#file').val("");
});

//Function for displaying details of uploaded image.
$("#submit").click(function() {
    $('#preview').css("display", "none");
    $('#message').css("display", "block");
});
});

在头脑中:

    <link rel="stylesheet" href="themes/themerollertest.min.css" />
    <link rel="stylesheet" href="themes/jquery.mobile.icons.min.css" />
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile.structure-1.4.5.min.css" />
    <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>

【问题讨论】:

  • 你在使用一些javascript吗?
  • 涉及到jquery
  • 添加这个脚本它应该负责在页面中创建新元素,应该有ajax脚本
  • 当然不会出现。您的表单没有设置method 属性,因此您的method 是GET。你有if 条件和$_POST
  • 我试过这个 echo ('
    ');

标签: php html forms submit


【解决方案1】:

可能是 () 太多和错误使用 PHP 是这种情况?

您的代码:

foreach ($result as $pers) {
    echo ('<form>');
    echo ('<h3>Naam</h3>');'<br>';
    echo "<input type='submit' name='nameupdate' value='$pers->name' data-href='?persUp=".$pers->username."&persDa=".$pers->name."'>";
    echo ('</form>');
} 

应该是:

foreach ($result as $pers) {
    echo '<form>';
    echo '<h3>Naam</h3><br>';
    echo '<input type="submit" name="nameupdate" value="'.$pers->name.'" data-href="?persUp='.$pers->username.'&persDa='.$pers->name.'">';
    echo '</form>';
} 

编辑:试试这个

表格:

foreach ($result as $pers) {
    echo '<form action="" method="POST">';
    echo '<h3>Naam</h3><br>';
    echo '<input type="hidden" name="persUp" value="'.$pers->username.'">';
    echo '<input type="hidden" name="persDa" value="'.$pers->name.'">';

    echo '<input type="submit" name="nameupdate">';
    echo '</form>';
}

然后发布:

if(isset($_POST['nameupdate']))
{
    echo('dabdab');
    if(isset($_POST['persDa']))
    {
        $did = $_POST['persDa'];
        echo "<input type='text' name='nmbox' value='".$did."'>";
        echo "<input type='submit' name='nmupdate' value='Update'>";
    }
} 

【讨论】:

  • 你的 foreach() 中的 $result 是什么?
  • foreach 工作正常吗? $pers-&gt;name 在表格之前打印出来吗?
  • 在所有提交按钮上,都从数据库中显示了正确的值,因此 foreach 工作正常
  • 酷!我很高兴它奏效了!这就是 D. Dimitrov 所说的 ;)
【解决方案2】:

正如我所见,您应该使用 ajax 发送一次 POSTGET 为此我建议您将此 pat 分离到新文件中

if(isset($_POST['nameupdate']))
{
    echo('dabdab');
    if(isset($_GET['persDa']))
    {
        $did = $_GET['persDa'];
        echo "<input type='text' name='nmbox' value='$did'>";
        echo "<input type='submit' name='nmupdate' value='Update'>";
    }
}

在带有视图的主文件中,您应该像这样添加 ajax

$("input[name='nameupdate']").on('click', function(e){
    e.preventDefault();
    var url = $(this).data('href'),
        nameupdate = $(this).val();
    $.ajax({
         type: "POST",
         url: url,
         data: {
             nameupdate: nameupdate,
         },
         success: function (response) {
            // here you should choose place where to put your result 
             $('#result').html(response)
         }
     });
});

编辑:或者像这样简单地更改您的代码

foreach ($result as $pers) {
    echo '<form action="?persUp='.$pers->username.'&persDa='.$pers->name.'" method="POST">';
    echo '<h3>Naam</h3><br>';
    echo "<input type='submit' name='nameupdate' value=".$pers->name." data-href=''>";
    echo '</form>';
}   

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    • 2022-01-14
    • 1970-01-01
    相关资源
    最近更新 更多