これは私のオートコンプリートコードです。$.post() 関数に配置した配列を受け取るには、PHP コードはどのようにすればよいですか?
var excludeArray = [];
$(".fb25").autocomplete({
source: 'vacation_get25Football.php',
focus: function(event, ui) {
$(this).val(ui.item.label);
return false;
},
select: function(event, ui) {
var exclude;
$(this).val(ui.item.label);
exclude = $(this).next().val(ui.item.value).val();
excludeArray.push(exclude);
// SENDING Exluded values to URL
$.post('vacation_get25Football.php', {'array[]': excludeArray});
// alert looks like (for example) 1,4,5
alert(excludeArray);
return false;
}
});
これはvacation_get25Football.php の一部です。私の考えは、'1,3' のような特定の値を SQL の IN() ステートメントに挿入することです。これを行うと、クエリから IN() に含まれるすべての値が減算されます。しかし、何らかの理由で、Jquery に投稿した配列を PHP で取得できません。私が知る限り、 $_POST['array']) が投稿されていないように見えます。何が悪いのかわかる方いますか?ありがとうございました。
if (($term = $_GET['term'])) {
if(($excludeArr = $_POST['array'])){
$test = 2;
}else{
/////////THIS IS THE ANSWER NO MATTER WHAT.
$test =1;
}
$objDB = mysqlDB();
$select_query = "SELECT team, ftball_id FROM tbl_football_top25
WHERE team
LIKE '%$term%'
AND NOT
ftball_id IN( $test )
;";
$prop_info = $objDB->getRecords($select_query);
$data = array();
if ($prop_info != "No records") {
FOREACH ($prop_info as $thisprop) {
array_push($data, array('label' => $thisprop['team'], 'value' => $thisprop['ftball_id']));
}
echo(json_encode($data));
}
//close db
$objDB->close();
}