在php循环中使用javascript/jquery设置div的值/文本

在php循环中使用javascript/jquery设置div的值/文本,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我想在循环中使用javascript/jquery设置div的值/文本,但我不知道如何实现它。我需要你们的帮助 目标: 从数据库检索数据。 在数据库的循环内使用javascript/jquery设置元素的值。 使该值成为链接 我从带有ff的links表中得到了这个a_link列。价值观: -www.google.com -https://www.google.com -www.stackoverflow.com 这是我的代码: <?php $querylink = "SELECT

我想在循环中使用javascript/jquery设置div的值/文本,但我不知道如何实现它。我需要你们的帮助

目标:

从数据库检索数据。 在数据库的循环内使用javascript/jquery设置元素的值。 使该值成为链接 我从带有ff的links表中得到了这个a_link列。价值观:

-www.google.com

-https://www.google.com

-www.stackoverflow.com

这是我的代码:

<?php
    $querylink = "SELECT * from links";
    $resultlink = mysql_query($querylink);

    while ($rowlink = mysql_fetch_array($resultlink))
    { 
     $thelink = $rowlink['a_link'];
?>

     <div class = "row">
         <span id = "linkhere"></span> 
     </div>

     <script>

        var link = "<?php echo $thelink; ?>";
        $("#linkhere").html(urlify(link));

        function urlify(text) {
           var urlRegex = /(((https?:\/\/)|(www\.))[^\s]+)/g;
           //var urlRegex = /(https?:\/\/[^\s]+)/g;
           return text.replace(urlRegex, function(url,b,c) {
               var url2 = (c == 'www.') ?  'http://' +url : url;
              // return '<span style = "color:blue;text-decoration:underline">' + url + '</span>';
              return '<a href="' +url2+ '" target="_blank">' + url + '</a>';
          }) 
        }

     </script>
<?php
    }
?>

任何帮助都将不胜感激。谢谢。

这不是它的工作原理,这不是它的工作原理

现在让我们假设您真的需要使用Javascript来处理生成的链接,而这不是

首先需要将Javascript代码与PHP代码分开。只有在获取数据并生成一些输出后,才能使用Javascript

我猜你只是想要某种工作代码

<?php
    $querylink = "SELECT * from links";
    $resultlink = mysql_query($querylink);

    while ($rowlink = mysql_fetch_array($resultlink)) : 
     $link = $rowlink['a_link'];
?>
     <div class="row">
         <a href="" data-url="<?php echo $link ?>"></a>
     </div>
<?php 
    endwhile;
?>

<script type="text/javascript">
    $(function() {
        $('.row a').each(function() {
            var urlified = urlify($(this).data('url'));
            $(this).attr('href', urlified.url)
                   .text(urlified.label);
        });
    });

    function urlify(text) {
        var urlRegex = /(((https?:\/\/)|(www\.))[^\s]+)/g;
        return text.replace(urlRegex, function(url,b,c) {
          var label = (c == 'www.') ?  'http://' +url : url;
          return {url: url, label: label};
        }); 
    }
</script>
@aimme使用不同的数据库库在技术上没有错。请阅读为什么不使用mysql的原因,以及一些简洁的替代方案、一些教程和一些好的阅读材料。是的,都在同一页!只需向下滚动

我想你是想:

显示“行”类的 其中包含一个标记,该标记使用“links”表的“a_link”列作为href和标签。 标签的href必须始终具有一个方案http://。 只有PHP和HTML

<?php
    $querylink = "SELECT * from links";
    $resultlink = mysql_query($querylink);

    while ($rowlink = mysql_fetch_array($resultlink))
    { 
        $theLink= $rowlink['a_link'];
        $regexMatches = array();

        // removed (what seemed to be) needless groups in regex
        $urlFound = preg_match("@((https?:\/\/|www\.)[^\s]+)@",$theLink,$regexMatches);

        if($urlFound === 1) {
            // only add http:// if http:// was not detected
            $href = ($regexMatches[2] === "www." ? "http://" : "") . $theLink;
?>
    <div class="row">
        <a href="<?php echo $href; ?>" target="_blank"><?php echo $theLink; ?></a>
    </div>
<?php  }
    }
?>
但是,使用parse_url意味着将显示任何旧字符串,而第一个解决方案将不会显示任何没有http://或www的链接。但是,由于从名为“links”的表中提取,因此可以安全地假设所有内容都是有效路径

首先,我想建议使用PDO或mysqli而不是mysql。因为它 易受sql注入及其折旧的影响

我想在循环中使用javascript/jquery设置div的值/文本,但我不知道如何实现它。我需要你们的帮助

因此,我认为Php是一种服务器端语言,而javascript是一种客户端语言。Ajax是一种从服务器端操作客户端的方法,反之亦然,无需刷新整个页面

下面只是一个演示,我从您的代码中编辑了一点,以显示服务器端代码和客户端代码的分离,并给出它的工作原理。我不知道代码是否可以工作。我还没有测试过。php代码服务器端将首先执行,但可以使用document.ready或window.load中的javascriptclient端函数控制其显示,以尽快应用影响。通过此操作,我们可以在将其显示给客户端之前更改所需的链接。对于检索和显示的每个链接,您都可以使用特定的类和jquery。每个用于对上述选定链接应用特定修复的函数或具有特定类的所有元素都可以作为一个整体进行操作,而无需使用。每个

<?php
    $querylink = "SELECT * from links";
    $resultlink = mysql_query($querylink);

    while ($rowlink = mysql_fetch_array($resultlink))
    { 
     $thelink = $rowlink['a_link'];
     echo '<div class = "row">
                <span id = "linkhere">
                    <a href="'.$thelink.'"></a>
                 </span> 
           </div>';
    }
?>
     <script>
        $("#linkhere a").html(urlify(link));

        function urlify(text) {
           var urlRegex = /(((https?:\/\/)|(www\.))[^\s]+)/g;
           //var urlRegex = /(https?:\/\/[^\s]+)/g;
           return text.replace(urlRegex, function(url,b,c) {
               var url2 = (c == 'www.') ?  'http://' +url : url;
              // return '<span style = "color:blue;text-decoration:underline">' + url + '</span>';
              return '<a href="' +url2+ '" target="_blank">' + url + '</a>';
          }) 
        }

     </script>

您可以使用带有parse_url函数的php实现这一点,以获得不同的组件

在parse_url中,有http或https的“scheme”键

然后,要使用php实现这一点,只需调用formatUrl函数来生成url

<?php 
 function formatUrl($url)
 {
    $urlData = parse_url($url);

    if(!isset($urlData['scheme'])) {
        $url = 'http://' . $url;
    }

    return '<a href="' . $url . '" target="_blank">' . $url . '</a>';
 }
?>

<?php
 $querylink = "SELECT * from links";
 $resultlink = mysql_query($querylink);

 while ($rowlink = mysql_fetch_array($resultlink))
 { 
  $thelink = $rowlink['a_link'];
 ?>

 <div class = "row">
     <span id="linkhere"><?php echo formatUrl($thelink)?></span> 
 </div>
 <?php
 }
?>

我不知道从哪里开始,伙计,你为什么不在PHP中使用正则表达式?@Lyes-BEN它可能是,但我不知道如何实现它。你能帮我解决这个问题吗?你可以直接使用php..@ravenanigam如何?任何帮助都可以。答案完全由代码组成,没有或很少解释,这使得未来的访问者很难理解询问者犯了哪些错误,或者询问者应该采取哪些方法,原始代码和修改后的代码之间的区别在于,我们不需要通过diff程序传递代码来理解答案以及为什么您的答案是可行的。请在代码中添加解释。
<?php 
 function formatUrl($url)
 {
    $urlData = parse_url($url);

    if(!isset($urlData['scheme'])) {
        $url = 'http://' . $url;
    }

    return '<a href="' . $url . '" target="_blank">' . $url . '</a>';
 }
?>

<?php
 $querylink = "SELECT * from links";
 $resultlink = mysql_query($querylink);

 while ($rowlink = mysql_fetch_array($resultlink))
 { 
  $thelink = $rowlink['a_link'];
 ?>

 <div class = "row">
     <span id="linkhere"><?php echo formatUrl($thelink)?></span> 
 </div>
 <?php
 }
?>