가능한 한 간단하게 설명하려고합니다. 이 자바 스크립트에 연결Javascript는 PHP의 스위치 케이스를 사용하여 mysql 데이터베이스에서 데이터를 검색합니다.
<fieldset class="ui-field-contain">
<select name="localita" id="localita" onchange="cambia()">
<option value="Tutti">Tutti</option>
<option value="Location 1">Location 1</option>
<option value="Location 2">Location 2</option>
<option value="Location 3">Location 3</option>
</select>
</fieldset>
:
나는이 HTML을
$localita = $_POST['localita'];
switch ($localita) {
case "Location 1" :
$sql = "my query";
$result = mysqli_query($con, $sql) or die("Query error: " . mysqli_error());
$records = array();
while ($row = mysqli_fetch_assoc($result)) {
$records[] = $row;
}
mysqli_close($con);
echo json_encode($records);
break;
case "Location 2" :
//my stuff
break;
case "Location 3" :
//my stuff
break;
default :
//mystuff
}
그리고 마지막으로 내가이 아약스로 검색이 PHP 파일에 연결되어
<script>
function cambia() {
$.post("switch_localita.php", {
localita : $("#localita").val()
}).done(function(data) {
});
}
</script>
/json :
<script type="text/javascript">
$.ajax('switch_localita.php', {
dataType : "json",
jsonp : "jsoncallback",
method : 'post',
contentType : 'application/json',
success : function(data, status) {
$.each(data, function(i, item) {
//my stuff
});
},
error : function(xhr, d, s) {
$('#output').empty().html(s);
}
});
</script>
질문은 다음과 같습니다. 어떻게이 모든 작업을 수행합니까? 필자는 선택 내용이 변경되면 (다른 음성이 선택됨) 양식이 제출되고 PHP 파일에 저장된 스위치 케이스에서 올바른 쿼리를 검색합니다. 또한 표준 쿼리는 페이지를 열 때 표시되므로 (페이지를 열면 이미 음성을 선택하지 않았지만 쿼리는 어쨌든로드됩니다.)
감사합니다.
2 개의 ajax 요청이 필요하지 않습니다. '$. post '는 간단히'$ .ajax'의 약식이고 똑같은 일을합니다. 여기에 복잡한 것을 끝내는 것 같습니다. 페이지로드에 관해서는 ... $ _POST가 비어 있는지 단순히 확인하십시오. 귀하의 전체 흐름 프로세스는 여전히 약간 막연하지만 – charlietfl
내 애플 리케이션은 자바 스크립트를 읽습니다. 그래서 자바 스크립트를 통해 데이터를 보내고, PHP로 정교하게 만들고, 아약스를 통해 정교하고 HTML로 인쇄 된 json 인코딩 된 값을 반환해야합니다. lol – Tony33
이것은 처음 요청을 한 직후에 두 번째 요청을해야하는 논리/프로세스 흐름 문제와 비슷합니다. 아무 것도 변경되지 않아서 이유 서버가 동시에 두 가지를 처리 할 수 없습니다. – charlietfl