2013-05-30 13 views
8

htmlでは、特定のステータスのデータベース内の各オブジェクトに対して自動的に作成されるいくつかのボタンがあります。各ボタンには独自のIDが割り当てられます。Javascript関数のポストとPHPスクリプトの呼び出し

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

ボタンは、JavaScriptの機能のclickedbuttonを呼び出し、それをボタンの数と、そのボタンの受注を与えます。

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

} 

この機能ボタンの数の負荷と受注コードも正常に通過させ、ボタン1などを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を使用する必要があります。

Javascriptだけでは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']; 

出力が成功関数に文字列として返します。 。

EDIT

あなたはまた、速記の機能を使用することができます。

あなたがあなたの clickedbutton機能では、このような何かを行うことができ、AJAXを使用したくないと仮定すると、
$.get('target_url', { key: 'value1', key2: 'value2' }).done(function(data) { 
    alert(data); 
}); 

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

関数clickedbutton(buttonid、受注){ buttonid = "ボタン" + buttonid。 $アヤックス({ データ: '受注コード=' +受注、 URL: 'statusupdate.php'、 方法: 'POST'、//または 成功GET:機能(MSG){ 警告(MSG)を、 } }); } – DaViDa

+0

$ strSQL = "注文を更新するOrderStatus = '進行中' OrderID = '" + $ _POST [' buttonid '] +' '"; – DaViDa

+0

お手数をおかけしていただきありがとうございます。 – DaViDa

0

Ajaxを使用します。

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ファイルをロードしたい場合は、あなたがこの

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

とPHPページで

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

などの編集

を試すことができます仲間の友だちとして提案しようとすることができます..

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']; 
関連する問題