簡體   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