2013-05-30 2 views
8

html에서는 특정 상태로 데이터베이스의 각 개체에 대해 자동으로 만들어진 여러 단추가 있습니다. 각 버튼은 고유 한 ID를가집니다.자바 스크립트 함수 게시 및 PHP 스크립트

echo '<Button id="button'.$counter.'" onClick="clickedbutton('.$counter.', '.$row['OrderID'].')" >'."<center>".$row['OrderID']."<br>"."</center>".'</Button>'; 

버튼은 자바 스크립트 함수를 호출하고 clickedbutton 그것을 버튼의 수와 그 버튼에 OrderID을 준다.

function clickedbutton(buttonid,orderid){ 
buttonid = "button" + buttonid; 

} 

이 기능 버튼의 수를로드하고 또한 OrderID를 성공적으로 통과 Button1에 등을 button0한다. 이제는 함수에서 외부 PHP 스크립트를 호출하려고하지만 orderid도 스크립트에 전달되어야합니다.

<?php 
    //connect to database 
    include_once('mysql_connect.php'); 

    // Select database 
    mysql_select_db("test") or die(mysql_error()); 

    // SQL query 
    $strSQL = "update orders set OrderStatus = 'In Progress' where OrderID = '" + orderid + "'"; 

    mysql_close(); 
?> 

는 내가 mysqli 보호에 대해 알고 모든, 나는 나중에 조정합니다. 이제 위의 질문에 초점을 맞추고 변수 orderid를 호출하고 phpscript에 전달하는 방법에 대해 알아 보겠습니다.

답변

12

AJAX를 사용해야합니다.

자바 스크립트만으로는 PHP 스크립트에 연결할 수 없습니다. 요청을하고, 변수를 PHP에 전달하고, 평가하고, 결과를 반환해야합니다. you'are가 ajax 요청을 전송 jQuery를 사용하면 매우 간단하다 :

$.ajax({ 
    data: 'orderid=' + your_order_id, 
    url: 'url_where_php_is_located.php', 
    method: 'POST', // or GET 
    success: function(msg) { 
     alert(msg); 
    } 
}); 

과 같은 주문 ID를 받아야합니다 당신의 PHP 스크립트 :

echo $_POST['orderid']; 

출력은 성공 함수에 문자열로 반환합니다 .

편집

당신은 또한 속기 기능을 사용할 수 있습니다 : 당신은 당신의 clickedbutton 기능이 뭔가를 할 수 AJAX를 사용하지 않으려는 당신을 가정

$.get('target_url', { key: 'value1', key2: 'value2' }).done(function(data) { 
    alert(data); 
}); 

// or eventually $.post instead of $.get 
+0

기능 clickedbutton (buttonid, OrderID를) { buttonid = "버튼"+ buttonid; $ 아약스 ({ 데이터 '에 OrderID ='+ OrderID를, URL : 'statusupdate.php', 방법 : 'POST', // 또는 성공 GET : 기능 (MSG)를 { 경고 (MSG); } }); } – DaViDa

+0

$ strSQL = "업데이트 주문 설정 OrderStatus = '진행 중'OrderID = '"+ $ _POST ['buttonid '] +' ' "; – DaViDa

+0

모든 도움을 주셔서 감사합니다. – DaViDa

0

Ajax를 사용합니다. PHP에서

function clickedbutton(buttonid,orderid){ 

    $.post("page.php", { buttonid: buttonid }) 
    .done(function(data) { 
     alert("Data Loaded: " + data); 
    }); 

} 

당신은 $ _POST와 그것을 얻을.

//[..] previous php code 
$strSQL = "update orders set OrderStatus = 'In Progress' where OrderID = '" + $_POST['buttonid'] + "'"; 
//[..] rest of php code 
0

당신에게 다음 페이지 새로 고침없이 PHP 파일을로드 할 경우

$strSQL = "update orders set OrderStatus = 'In Progress' where OrderID = '".mysql_real_escape_string($_GET['id'])."'"; 

편집

var url = myurl +'?id=' + orderid; 
window.location.href = url; 

같은 및 PHP 페이지에 시도 할 수 있습니다 동료 친구가 제안하려고 시도 할 수 있습니다 ..

1

을 :

window.location.replace('path/to/page.php?orderid=' + orderid); 

그리고 귀하의 페이지에 있습니다.PHP는

"...where OrderID = '" . $_GET('orderid') . "'"; 

0

가장 쉬운 방법은 쿼리 문자열을 구축하고 PHP 스크립트의 URL의 끝에 첨부하는 것입니다 (문자열 가입 점에 유의). 이 같은를 통해 매개 변수를 액세스 할 수있는 PHP 스크립트에서

function clickedbutton(buttonid,orderid){ 
    var url = 'script.php?'; 
    var query = 'buttonid=' + buttonid + '&orderid=' + orderid; 

    window.location.href = url + query 
} 

:

<?php 
echo $_GET['buttonid']; 
echo $_GET['orderid'];