繁体   English   中英

更改ajax return内的anchor的href,但随后被覆盖

[英]changing the href of anchor inside ajax return but then it is overwritten

大家好,我有一个问题,我在该链接的点击后的某列中有一个链接表,我将其发送给使用ajax的函数,以获取指向该链接的其他链接。 在ajax函数中,它已正确更改,但是在完成ajax之后,它仍然重定向到原始页面。 如果我在ajax之外将其更改,则可以正常工作并重定向到其他站点

这是我的代码:

用于建立表格的php函数

function populate()
{
$link = connectToDB();
$query = 'Select value1, value2
         from table1';
$data = read($query, $link);
$table = '<div id="table"><table id="links">
            <tr>
            <th>value1</th>
            <th>value2</th>   
          </tr>';

$num =0;
while ($row = $data->fetch_assoc()) {
    $table .= '<tr>';
    $table .= '<td>' . $row['value1'] . '</td>';
    $table .= '<td><a id="redirection'.$num.'" onclick="redirect('.$num.')" href=”/?redirection.php?' . $row['value2'] . '>' . $row['value1'] .'</td>';
    $table .= '</tr>';
    $num++;
}
$table .= '</table></div>';
mysqli_close($link);
return $table;
}

更改href的javascript

function redirect(num){
    var url = $("#redirection"+num).attr("href");
    var sub = url.split('?');
    var val1= sub[2];
    var test = "";
    $.ajax({
        url: 'getNewUrl.php',
        type:'POST',
        dataType: 'json',
        data: { name: val1},
        success: function(table){
            alert(table.val2);
            $("#redirection"+num).attr("href",table.val2);
            var check =$("#redirection"+num);
        },
        error: function () {
            alert("No value with that name");
        }
    });
}

当我提醒重置的值是正确的值时,并且当我检查调试器中的check的href值时,它已正确更改,但随后我仍然重定向到错误的站点

谢谢您的帮助

我认为问题出在href=”/? 和错误的双引号,并且错过了右引号并删除了"?" =/

onclick="redirect('.$num.')" href=”/?redirection.php?' . $row['value2'] . '

就像这样

onclick="redirect('.$num.')" href="/redirection.php?' . $row['value2'] .'"

希望有帮助。

好的,这样我就解决了所有错误,只是想出了办法而不是更改href,然后让它将我重定向到页面,我只是使用window.location从ajax内部重定向了我,并且href更改是多余的

感谢所有试图帮助我的人

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM