链接在动态php表中的问号后被剪切

时间:2015-09-12 13:57:13

标签: php mysql dynamic varchar sql-types

我有一个PHP动态表格,当我点击其中一个链接(http://www.xxxxxx.com/?r=xxxxxxxxx)时,链接会在新标签页中打开,并在问号(?)之后剪切,就像www.xxxxxx.com/?

这是PHP代码表:

echo '<div class="row"><tr>';
    echo '<td><form action='.$data['referral'].'>
        <input class="btn" type="submit" formtarget="_blank" value='.$data['webadress'].' data-value='.gmdate("H:i:s",($data['timer']*60+60)).' data-start="false"></form></td>';
    echo '<td>Now</td>';
    echo '<td>'.$data['timer'].'</td>';
    echo '<td>'.$data['payout'].'</td>';
echo '</tr></div>';

在我的数据库中,$data['referral']是我的www.xxxxxx.com/?r=xxxxxxxxx链接。

我认为我的数据库选项中的类型或内容是错误的,所以它在问号后切换。现在我在varchar(255)latin1_general_ci

编辑:我输入了一个输入,因为我需要一个计时器的存储数据,这里是JS:

$(window).load(function(){

        var row = document.getElementsByClassName("color");

        function toTimeString(seconds) {
                return (new Date(seconds * 1000)).toUTCString().match(/(\d\d:\d\d:\d\d)/)[0];
        }

        function redColor(element) {
                $(element).css('background-color', 'rgba(255,0,0,0.7)');
        }

        function normalColor(elemen) {
                $(element).css('background-color', 'transparent');
        }

        $('.btn').on('click', startTimer);

        function startTimer() {
                var dataStartElem = $(this);
                var dataStart = dataStartElem.attr('data-start');
                if (dataStart === 'false') {
                        dataStartElem.attr('data-start', 'true');
                        var nextElem = dataStartElem.parents('td').next();
                        var duration = dataStartElem.attr('data-value');
                        var a = duration.split(':');
                        var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);
                        setInterval(function () {
                                seconds--;
                                if (seconds >= 0) {
                                        nextElem.html(toTimeString(seconds));
                                        redColor(nextElem);
                                }
                                if (seconds === 0) {
                                        nextElem.html('Now');
                                        dataStartElem.attr('data-start', 'false');
                                        clearInterval(seconds);
                                        normalColor(nextElem);
                                }
                        }, 1000);
                }
        }
});

这个JS,启动计时器并将其置为红色,并在完成后显示“now”。

2 个答案:

答案 0 :(得分:1)

正如@Otto所说,试着接近这个:

echo '
<div class="row">
    <tr>
        <td>
            <a href="' . htmlspecialchars($data['referral']) . '">' . htmlspecialchars($data['webadress']) . '</a>
        </td>
        <td>Now</td>
        <td>' . $data['timer'] . '</td>
        <td>' . $data['payout'] . '</td>
    </tr>
</div>
';

答案 1 :(得分:1)

通过使用GET表单,您可以覆盖操作的查询部分。将表单转换为普通链接,或将URL的查询部分放在隐藏的输入中。