자바 스크립트에서 php를 호출하는 법

ant01의 이미지

php 초보입니다. php로 현재 달의 달력을 출력하는 프로그램을 짰는 데
이 것에 버튼을 누르면 이전달 혹은 다음 달의 달력을 출력하는 기능을 추가하려 합니다.
그런데 버튼을 눌렀을 때 어떤 이벤트가 일어나게 하려면 자바스크립트를 쓰는 것이 정석이라 하네요.

제가 생각하고 있는 것은 form태그에서 자바스크립트 함수를 호출하고 자바 함수에서 다시 php를 호출하면 될 것 같은 데
(이렇게 히면 이미 작성한 프로그램을 거의 그대로 사용할 수 있습니다.)
자바 함수 내에서 php 함수의 호출을 어떻게 하는지 모르겠습니다.
아시는 분 자세한 설명 부탁드립니다.

noblepylon의 이미지

자바스크립트는 어디까지나 클라이언트에서 실행되기 때문에 php함수를 직접 호출할수는 없습니다만,
자바스크립트 상에서 폼 전송을 하는건 가능합니다.
jQuery 라이브러리를 사용하면 쉽습니다.

예제:

// jQuery 라이브러리를 사용.
$("#comment-submit").click(function() { // comment-submit 버튼이 눌러지면 활성화
    var _comment = $("#comment-area").val(); // comment-area의 내용을 긁어온다
    var _mid = $("#mid").val(); // 게시글 id를 긁어온다.
    if(_comment.length == 0) {
        alert("덧글 내용이 없습니다.");
    } else { // commentajax.php로 덧글 내용 전송
        $.ajax({
            type: "POST", // POST형식으로 폼 전송
            url: "commentajax.php", // 목적지
            timeout: 10000,
            data: ({comment: _comment, mid: _mid}),
            cache: false,
            dataType: "text",
            error: function(xhr, textStatus, errorThrown) { // 전송 실패
                alert("전송에 실패했습니다.");
            }
        }); 
    }       
    return false;
});

---
“내게 능력주시는 자 안에서 내가 모든 것을 할 수 있느니라.”(빌립보서 4:13)

ant01의 이미지

위의 설명은 쉽다고 하지만 잘 모르겠습니다.
아래는 제가 생각하는 프로그램의 호출 구조 입니다.
function disp()내에서 php를 호출하려면 어떻게 해야하나요?

.
<script>
function disp()
{
 
}
</script>
<body>
 <form >
  <input type=button value="입력" onClick="disp();">
</form>
</body>

익명 사용자의 이미지

보통 일정관리가 아닌 날짜선택용 달력은 자바스크립트+HTML만을 쓰고 php는 안 사용한 상태에서 구현합니다.
일단 자바스크립트를 이용해 php를 불러 동적으로 페이지를 수정하시고자 하시는 경우 ajax를 알아보시면 좋습니다.

송효진의 이미지

$('#nextMonth').click(function() {
  $('#monthBox').load('/month.php?month=' + 어딘가에지정한다음달);
});

<atag href="#" id="nextMonth">다음달</a> <!-- code 태그 안에서도 a 가 막혔네요. -->
<div id="monthBox"><table 달력 /></div>

/month.php 에서는 달력 html 만을 출력해주면 됩니다.

http://docs.jquery.com/Main_Page
http://jqapi.ru/

cys9705의 이미지

일단 한 번 로드 된 페이지에서 Javascript만으로 새로운 연결을 만들지 않고 PHP 함수를 실행하는 건 불가능합니다.
다만 윗분들이 설명하셨듯이 데이터만 넘기는 PHP 페이지에 Ajax 연결을 만드는 게 흔하지요^^

이 계정은 더이상 사용하지 않고 있습니다.
솔직히 말하면, 흑역사뿐인 계정이니, 이 서명이 붙은 글은 못 본 척 해주시면 좋겠습니다ㅠㅜ..

익명 사용자의 이미지

귀여우시당ㅋㅋ

commonJS의 이미지

폼 속성에서 action을 주시고, 그 값을 php에서 처리한 후 결과 값만 전송하여 그 값을 웹 문서 상에 나타내는 것이 더 빠를 것이라 판단됩니다. 요지는 주된 처리는 php에서 처리한다는 생각으로 코드를 풀어나가시면 될 거 같습니다.

두 언어의 성격이 확연히 다르기에(자바스크립트는 주로 브라우저 상에서의 이벤트 및 DOM을 제어하기 위한 성격으로 만들어진 언어, php는 제작자가 개인 홈페이지를 제어할 목적으로 만든 간단한 언어에서 서버 측 스크립트 언어로써 발전) 이러한 개념을 숙지하시고 코딩을 하실 것을 추천합니다.

위의 분들이 하신 말씀이 이해가 가지 않으신다면 우선 form tag가 무엇인지 form tag에서 속성은 어떤 것들을 쓰고 그 역할은 무엇 인지에 대해서 찾아보시는 것을 추천합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.