에이잭스에서 php 함수를 어떻게 호출합니까?
저는 에이잭스가 php 페이지로 가서 일련의 일들을 실행한 다음 json 데이터를 반환하도록 하는 방법에 대해 잘 알고 있습니다.하지만 주어진 페이지에 있는 특정 기능을 호출하는 것이 가능합니까?
기본적으로 제가 원하는 것은 프로젝트의 파일 수를 줄이는 것입니다.그래서 저는 한 페이지에 많은 공통적인 기능들을 넣을 수 있고, 그 다음에는 제가 원하는 기능을 호출할 수 있습니다.
AJAX 요청의 경우
웹 페이지에 jQuery 라이브러리를 포함합니다.예를 들어.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
버튼 클릭 시 함수 호출
<button type="button" onclick="create()">Click Me</button>
버튼을 클릭하는 동안 자바스크립트로 작성 기능을 호출합니다.
<script> function create () { $.ajax({ url:"test.php", //the page containing php script type: "post", //request type, dataType: 'json', data: {registration: "success", name: "xyz", email: "abc@gmail.com"}, success:function(result){ console.log(result.abc); } }); } </script>
서버 측 test.php 파일에서 action POST 매개 변수를 읽고 해당 값을 읽고 PHP로 action을 수행한 후 JSON 형식으로 반환해야 합니다.
$registration = $_POST['registration'];
$name= $_POST['name'];
$email= $_POST['email'];
if ($registration == "success"){
// some action goes here under php
echo json_encode(array("abc"=>'successfuly registered'));
}
AJAX 요청에서 직접 PHP 함수를 호출할 수는 없지만 대신 이 작업을 수행할 수 있습니다.
<? php
function test($data){
return $data+1;
}
if (isset($_POST['callFunc1'])) {
echo test($_POST['callFunc1']);
}
?>
<script>
$.ajax({
url: 'myFunctions.php',
type: 'post',
data: { "callFunc1": "1"},
success: function(response) { console.log(response); }
});
</script>
이러한 목적을 위한 구조로서, 저는 다음을 제안합니다.
PHP
<?php
if(isset($_POST['action'])){
if ($_POST['action'] == "function1") { func1(); }
if ($_POST['action'] == "function2") { func2(); }
if ($_POST['action'] == "function3") { func3(); }
if ($_POST['action'] == "function4") { func4(); }
}
function func1(){
//Do something here
echo 'test';
}
?>
jQuery
var data = { action: 'function1' };
$.post(ajaxUrl, data, function(response) {
if(response != "") {
$('#SomeElement').html(response);
}else{
alert('Error, Please try again.');
}
});
언급했듯이, 당신은 AJAX 호출에서 직접 PHP 함수를 호출할 수 없습니다.
제가 정확히 이해했다면, 네, 가능합니다.당신의 모든 기능을 하나의 php 파일에 넣고 당신이 호출하고 싶은 매개 변수로 에이잭스를 통과시키세요.그런 다음 스위치 또는 if 구조를 사용하여 원하는 것을 실행합니다.
jquery:
$(document).ready(function(){
$('#tfa_1117700').change(function(){
var inputValue = $(this).val();
var v_token = "{{csrf_token()}}";
$.post(
"{{url('/each-child')}}",
{ dropdownValue: inputValue,_token:v_token },
function(data){
console.log(data);
$('#each-child-html').html(data);
}
);
});
});
php:
public function EachChild(Request $request)
{
$html ="";
for ($i=1; $i <= $request->dropdownValue; $i++)
{
$html = $i;
}
echo $html;
}
언급URL : https://stackoverflow.com/questions/39341901/how-to-call-a-php-function-from-ajax
'programing' 카테고리의 다른 글
이름이 "order"인 필드의 독트린 구문 오류 (0) | 2023.07.28 |
---|---|
분산 작업 대기열(예:Celery) 대 crontab 스크립트 (0) | 2023.07.28 |
구성 요소 태그 간에 내용 렌더링 (0) | 2023.07.28 |
Mac OS X 10.9 이후에는 PIL을 설치할 수 없습니다. (0) | 2023.07.28 |
Tomcat에서 메모리 누수가 발생할 가능성이 매우 높은가요? (0) | 2023.07.28 |