0

ボタンをクリックすると、大量の php コードが実行される方法はありますか?

例えば;

<input type="button" value="Submit Order" class="minibutton" **onClick="executePHP"**>

このボタン オブジェクトをクリックすると、この 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!';
        }

onclick をブレーカーとして機能させたいのですが、クリックすると解除され、一連のコードを実行し続けます。

それができない場合、他の方法はありますか?

元のデータが $_POST からのものであるため、データが失われる (配列) ため、関数 isset は機能しません。私の希望はonclickイベントですが、方法がわかりません。

パソコンの達人教えてください!

4

3 に答える 3

3

ブラウザ イベントには JavaScript のみを添付できます。PHP などのサーバー側コードを実行する場合は、サーバーを呼び出す必要があります。あなたの状況では、javascript を忘れて、フォームを PHP ページに POST するだけです。

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

  <!-- form inputs -->

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

</form>

次に、コードを入れますfile.php

編集

すべての投稿データを非表示のフォーム フィールドに入れます。その後、ボタンをクリックすると、投稿データが再送信されます。

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

多次元の投稿配列がある場合は、serialize()それを1つのフィールドに貼り付けます

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

それからunserialize()反対側に。

$_POST = unserialize($_POST['data']);
于 2012-06-07T23:44:28.910 に答える
0

jQuery の使用:

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

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

于 2012-06-07T23:41:52.843 に答える
0

クリックした要素からの値が .php に必要な場合は、必要ありません。 コードが、クライアントの要求とは関係のない単なる php の集まりである場合は、それをjs 関数でエコーし、クリック時にそれを呼び出すことができます。

于 2012-06-07T23:43:22.250 に答える