2012-06-07 2 views
0

단추를 클릭하면 여러 개의 PHP 코드가 실행되는 방식이 있습니까?PHP 코드 블럭을 실행할 JS OnClick 이벤트

예 :

이 버튼 개체를 클릭하면이 PHP 코드가 실행됩니다.

include("../includes/connect.php"); 
    include("../includes/generateTimestamp.php"); 
    include("../includes/knowthename.php"); 


    $pid=$_POST['submit_id']; 
    $pname = $_POST['submit_name']; 
    $total = $_POST['submit_total']; 
    $quantity = $_POST['submit_qty']; 
    $price = $_POST['submit_price']; 
    $unit = $_POST['submit_unit']; 
    $change = $_POST['submit_sukli']; 
    $payment = $_POST['submit_payment']; 
    $count = $_POST['count']; 
    //explode 
    $newpid = explode(";",$pid); 
    $newpname = explode(";",$pname); 
    $newquantity = explode(";",$quantity); 
    $newprice = explode(";",$price); 
    $newpriceunit = explode(";",$unit); 


    $sql = mysql_query("INSERT INTO sales (sales_date, total_price, emp_id) VALUES ('$timestamp','$total', '$employee_id')"); 
    mysql_query($sql); 
    $id_gen = mysql_insert_id(); 
    $count = $count - 1; 
    while($count = -1){ 

      $product_id = $newpid[$count]; 
      $product_name = $newpname[$count]; 
      $product_quantity = $newquantity[$count]; 
      $product_price = $newprice[$count]; 

      $sql2("INSERT INTO sales_details (sales_id,product_id,sales_qty,unit_price,net_price) VALUES ('$id_gen','$newpid[$count]','$product_quantity[$count]', 
      '$product_price[$count]','$newpriceunit[$count]')"); 
      mysql_query($sql2);   
     } 
    header('Location: prompt.php?x=5'); 

    }else{ 
     echo 'Nothing here!'; 
     } 

나는

내가 그렇게 할 수있는 방법이없는 경우

이,이, 내가 그것을 클릭하면, 그것은 unbreak 의지와 코드의 그 무리를 계속 실행하는 차단기로 온 클릭 기능을 만들고 싶어 다른 방법들?

원본 데이터가 $ _POST에서 왔기 때문에 데이터가 손실 (배열) 될 수 있으므로 function isset이 작동하지 않습니다. 내 희망은 onclick 이벤트이지만 어떻게해야할지 모르겠다.

컴퓨터의 위선을 가르쳐주세요! jQuery를 사용

+0

나는이가 가능성이 jQuery를/Ajax 요청으로 수행 할 수 있습니다 말할 것 - http://api.jquery.com/jQuery.ajax/ – Batfan

답변

3

브라우저 이벤트에만 JavaScript를 첨부 할 수 있습니다. PHP와 같은 서버 측 코드를 실행하려면 서버를 호출해야합니다. 귀하의 상황에서 자바 스크립트를 잊어 버리고 PHP 페이지에 양식을 게시하십시오.

<form method="post" action="file.php"> 

    <!-- form inputs --> 

    <input type="button" value="Submit Order" class="minibutton" /> 

</form> 

는 숨겨진 양식 필드에있는 모든 게시물 데이터를 넣어

편집file.php

에 코드를 넣어. 그런 다음 버튼을 클릭하면 게시물 데이터가 다시 제출됩니다. 단지 serialize()을 당신이 다차원 후 배열이있는 경우

foreach($_POST as $key => $val) { 
    echo '<input type="hidden" name="'.htmlspecialchars($key).'" value="'.htmlspecialchars($val).'" />'."\n"; 
} 

는 다른면에 1 개 필드에

echo '<input type="hidden" name="data" value="'.htmlspecialchars(serialize($_POST)).'" />'."\n"; 

다음 unserialize()을 그것을 스틱.

$_POST = unserialize($_POST['data']); 
+0

파일 데이터가 다른 POST 메서드에서 온 것이기 때문에 제가 말했듯이 POST를 수행하고 가져올 수 없습니다. 이렇게하면 모든 데이터가 지워지고 배열입니다. –

+0

무엇? morechars – ddlshack

+0

오리지널 데이터는 POST를 사용하여 sales.php에서 가져 왔습니다. 현재 사용중인 페이지는 checkorder.php입니다. sales.php에서 온 모든 데이터를 표시했습니다. 이제 단추를 클릭하면 데이터베이스에 데이터를 넣을 PHP 블록을 실행하는 단추를 만들었습니다. –

0

:

$('.minibutton').on('click', function(e) { 
    // do some ajax stuff here 
}); 

예 : http://api.jquery.com/jQuery.ajax/

+0

그것의 좋은 해결책하지만 난 아직 시도하지 않은 아약스 또는 jquery, 나는 그것을 나중에 시도 할 것이다. 기본 PHP와 js로이 프로젝트를하고 있습니다. –

0

당신의 .PHP가 클릭 된 요소로부터 들어오는 값을 필요로하는 경우, 당신이 그나마 더.하지 코드가 클라이언트 요청과 관련이없는 PHP 자체 일 경우 은 js 함수에 해당 코드를 에코로 표시하고 클릭시이를 호출 할 수 있습니다.

+0

내가 그 일을 할 수있을 것 같아요하지만 어떻게 JS 함수 안에 PHP 코드를 넣어 괜찮습니까? 나는 이것으로 오류가 날 수는 있지만 작동하는지 확인하려고 노력할 것입니다. –

+0

사실 저는 여러분이 여러분의 php-while-on server를 호출하고 .php에 의해 생성 된 js 코드를 echo하는 것을 의미합니다 서버를 치지 않고 js에 의해 호출 가능) - 클라이언트 측에서는 .php를 호출 할 수 없습니다. .php echo (js/html)의 결과 만 함수에 표시됩니다 .. –