如果条件数组声明错误在 php 和数据表代码的输入标记内


If condition array declaration error inside input tag for php and datatable code

我是PHP的新手。我正在尝试修复 PHP 代码的语法错误。但似乎不起作用。我在 s[i][4] 处收到语法错误。如果我更改为"+s[i][4]+",它不会抱怨语法错误,而是没有读取实际值。我想我在 PHP 代码中使用了错误的变量,但尝试了很多方法但失败了。实际上,如果状态[i][4])被取消,我正在尝试隐藏付费按钮。请帮忙。

Java 脚本代码

`<script type="text/javascript">
            $(document).ready(function() {
                var table  = $('#myTransactionitems').dataTable();  //Initialize the datatable
                var user = $(this).attr('id');
                if(user != '') 
                { 
                    $.ajax({
                        url: 'transactions',
                        dataType: 'json',
                        success: function(s){
                            console.log(s);
                            table.fnClearTable();
                            for(var i = 0; i < s.length; i++) {
                                table.fnAddData([
                                    s[i][0],
                                    s[i][1],
                                    s[i][2],
                                    s[i][3],
                                    s[i][4],
                                    s[i][5],
                                    "<form method='post' action = 'donationSplit'><input name = 'donationid' type='hidden''
                    value='"+s[i][0]+"'></input><input type='submit' value = 'Paid' <?php if (s[i][4]=='Cancelled'){ ?> style='display:none' <?php   } ?> class='btn btn-sm btn-success pull-left '>'
                   </input></form><form method='post' action = 'donationSplit'><input name = 'donationid' type='hidden' '
                    value='"+s[i][0]+"'></input><input type='submit' value = 'Cancel' class='btn btn-sm btn-danger pull-right'>'
                   </input></form>" 
                                ]);                                     
                            } // End For
                        },
                        error: function(e){
                            console.log(e.responseText);    
                        }
                    });
                }   
            });
        </script>`

传输.php代码

'

<?php
include('sessionstart.php');
include('session.php');
require_once("dbcontroller.php");
$db_handle = new DBController();
$user_id=$_SESSION['login_user_id'];
$query = mysql_query("select * from mytransactions_list where userid = '$user_id'");
while ($fetch = mysql_fetch_array($query)) {
    $output[] = array($fetch[0], $fetch[1], $fetch[2], $fetch[3], $fetch[4], $fetch[5], $fetch[6]);
}
echo json_encode($output);
?>
`

下面的代码应该可以正常工作。我添加了一个名为 disp1 的 JS 变量。如果if条件匹配,则为其分配值"display:none;",否则它将为空。

for(var i = 0; i < s.length; i++) {
    var disp1 = '';
    if ( s[i][4] == 'Cancelled' ) {
        disp1 = 'display:none;'
    }
    table.fnAddData([
        s[i][0],
        s[i][1],
        s[i][2],
        s[i][3],
        s[i][4],
        s[i][5],
        "<form method='post' action = 'donationSplit'><input name = 'donationid' type='hidden''
                    value='"+s[i][0]+"'></input><input type='submit' value = 'Paid' style='" + disp1 +"' class='btn btn-sm btn-success pull-left '>'
                   </input></form><form method='post' action = 'donationSplit'><input name = 'donationid' type='hidden' '
                    value='"+s[i][0]+"'></input><input type='submit' value = 'Cancel' class='btn btn-sm btn-danger pull-right'>'
                   </input></form>" 
                            ]);                                     
                            } // End For
                        },
                        error: function(e){
                            console.log(e.responseText);    
                        }
                    });
                }   
            });

你不能在PHP中使用Javascript变量,因为PHP代码是首先执行的。

试试这个

"<form method='post' action = 'donationSplit'>'
    <input name = 'donationid' type='hidden' value='"+s[i][0]+"' />'
    <input type='submit' value = 'Paid' " + (s[i][4]=='Cancelled') ? "style='display:none'" : "" + "class='btn btn-sm btn-success pull-left ' />'
</form>'
<form method='post' action = 'donationSplit'>'
    <input name = 'donationid' type='hidden' value='"+s[i][0]+"' />'
    <input type='submit' value = 'Cancel' class='btn btn-sm btn-danger pull-right' />'
</form>"