在我的 php 頁面中,我有一排按鈕,每個按鈕都有一些值(在本例中為 5)。這些值應發送到 ajax 腳本中,該腳本對值進行一些計算并回傳每個按鈕的結果,而無需重新加載主頁。在這個例子中,結果將是
弗蘭克=5(按鈕 1)
FRANK=弗蘭克(按鈕 2)
弗蘭克=48(按鈕 3)
FRANK=Bo(按鈕 4)
FRANK=測驗(按鈕 5)
當我按下第一個按鈕時,我應該會在按鈕上看到結果 1。當我按下下一個按鈕時,我應該會在按鈕上看到結果 2。
我只在按鈕 1 上回傳了一個結果,因為所有按鈕都具有相同的回傳值容器。我需要更多的回傳值容器,我可以將 $i 添加到容器中:這會給我不同的容器來回傳結果。但是如何在 javascript 中使用 $i 。我的問題還在于 javascript 中的 var x 始終是第一個按鈕的值。我再次可以將 $i 添加到 id="x": id="x'.$i.'" 但我仍然只有 document.getElementById("x").value 來讀取 javascript 中的 x 值。
我希望有人幫我完成這里的代碼。
主頁:
include('hide-ajax-scripts.php');
$dblinjer=Array();
$dblinjer[0]['loebid']=5;
$dblinjer[1]['loebid']='frank';
$dblinjer[2]['loebid']=48;
$dblinjer[3]['loebid']='Bo';
$dblinjer[4]['loebid']='test';
$i=0;
while($i<5){
$dblinjer[$i]['nrlink']='<div><button type="button" id="x" value="'.$dblinjer[$i]['loebid'].'" onclick=baadimaal("baadimaal")><span id="container"></span></button></div>';
echo $dblinjer[$i]['nrlink'];
$i ;
}
hide-ajax-scripts.php 包含:
<script type="text/javascript">
function baadimaal(str) {
var x = document.getElementById("x").value; //henter v?rdi fra input felt med id = x
// document.getElementById("para").innerHTML = x; //viser variablen para p? pladsholder
const xhttp = new XMLHttpRequest();
xhttp.onload = function() {
document.getElementById("container").innerHTML =
this.responseText; //her placeres svaret, som kommer tilbage fra hide-ajax-svar filen
}
xhttp.open("GET", "hide-ajax-svar.php?funk=" str "¶=" x); //overf?r str og x til hide-ajax-svar filen
xhttp.send();
}
</script>
hide-ajax-svar.php 包含計算。這里將進行更多的計算和在資料庫中存盤值。
<?php
if($funk=='baadimaal'){
echo 'FRANK='.$para;
}
?>
uj5u.com熱心網友回復:
您可以this在您的函式呼叫中傳遞this參考當前單擊的按鈕。此外,您不能ids對多個元素使用相同的元素,而是使用class選擇器。因此,更改您的php代碼,如下所示:
$dblinjer[$i]['nrlink']='<div><button type="button" value="'.$dblinjer[$i]['loebid'].'" onclick=baadimaal("baadimaal",this)><span class="container"></span></button></div>';
然后,this在您的函式中添加作為引數,然后用于el.value獲取單擊的按鈕值el.querySelector(".container").innerHTML并將結果添加到單擊按鈕的 span 標簽內。因此,更改您的js代碼,如下所示:
function baadimaal(str,el) {
var x = el.value; //henter v?rdi fra input felt med id = x
const xhttp = new XMLHttpRequest();
xhttp.onload = function() {
el.querySelector(".container").innerHTML =
this.responseText;
}
xhttp.open("GET", "hide-ajax-svar.php?funk=" str "¶=" x);
xhttp.send();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/370783.html
標籤:javascript php 阿贾克斯
