何度も尋ねられていますが、closure
というものが出てくると思いますが、少なくとも自分のコードに適用できないようです。forループでAjaxを呼び出すと、同じ値が一度だけ返されます
ここでは、.choice
クラスに基づいてforループを作成します。
<label class="choice" data-id="1"><input type="radio" name="group1" value="een">een</label>
<label class="choice" data-id="2"><input type="radio" name="group1" value="twee">twee</label>
<label class="choice" data-id="3"><input type="radio" name="group1" value="drie">drie</label>
<label class="choice" data-id="4"><input type="radio" name="group1" value="vier">vier</label>
$(document).ready(function(){
for (var i = $('.choice').length - 1; i >= 0; i--) {
var element = $('.choice')[i];
var choiceID = $(element).data('id');
var value = $(element).find('input').val();
$.ajax({
method: "POST",
url: 'api.php',
data: {
choiceID: choiceID,
value: value
},
success: function(res) {
if(value == JSON.parse(res).value) {
console.log(JSON.parse(res).value);
console.log(JSON.parse(res).count);
if(JSON.parse(res).count > 0){
$(element).addClass('full');
}
} else {
// console.log("FAILED " + JSON.parse(res).value);
// console.log("FAILED " + JSON.parse(res).count);
}
}
});
}
});
は、その後、私は呼んapi.php
ファイルに複数のクエリの
$choiceID = $_POST["choiceID"];
$value = $_POST["value"];
$kolom = "choice_" . $choiceID;
$counter = 0;
$array = [];
$query = "SELECT choice_1 FROM resultaten WHERE choice_1 = '".$value."'";
$getCount = $db->query($query);
$getCount->execute(array("value"=>$value));
$results = $getCount->fetchAll(PDO::FETCH_ASSOC);
more queries and for loops
Ajaxの大成功は、それがfull
1
の
data-id
で最初
choice
クラスの
echo json_encode(array("value" => $value, "count"=> $counter, "ID" => $choiceID));
コールバック
しかし、私はconsole.logに0123それはなど1/2/3/4
のdata-id
とは何か(私はそれがすべてone
されるべきだと思う)が、私は1
にそれらすべてを置くとき、それはちょうど最初のもののために働くおそらくeen 1
とコンソールに VM1982:1 Uncaught SyntaxError: Unexpected token < in JSON at position 1
を返しとcount
。 1/2/3/4
をdata-id
として使用したのと同じです。また、いくつかの結果と、それはそれはそれは2のcount
持ち、AJAXにそれがcount
=上記0それはクラスfull
を与えるsould時に言うが、それはundefined index: choice_2
代わり
Iを与えると言う
<br /> <b>Notice</b>: Undefined index: choice_2 in <b>C:\xampp\htdocs\form\api.php</b> on line <b>47</b><br /> {"value":"use your apple","count":2,"ID":"2"}
を返すことにちょっと奇妙ですこれが主な問題
そして私console.log
value
それはchoice
クラスのfirst
値であるeen
を返すsucces
機能の内部の原因だと思います。
value
の変数value
の下にある場合、それはすべての変数を返します。