20
<button type="button" id="okButton" onclick="funk()" value="okButton">Order now </button>
<script type="text/javascript">
    function funk(){
        alert("asdasd");
        <?php echo "asdasda";?>
    }
</script>

ボタンが押されたときにPHPコードを実行したい(この時点でasadasdaをエコーする)

4

10 に答える 10

17

You could use http://phpjs.org/ http://locutus.io/php/ it ports a bunch of PHP functionality to javascript, but if it's just echos, and the script is in a php file, you could do something like this:

alert("<?php echo "asdasda";?>");

don't worry about the shifty-looking use of double-quotes, PHP will render that before the browser sees it.

as for using ajax, the easiest way is to use a library, like jQuery. With that you can do:

$.ajax({
  url: 'test.php',
  success: function(data) {
    $('.result').html(data);
  }
});

and test.php would be:

<?php 
  echo 'asdasda';
?>

it would write the contents of test.php to whatever element has the result class.

于 2012-09-19T16:24:40.550 に答える
5

Javascript と PHP の相互作用

私たちは皆、Javascript がクライアント側 (つまりブラウザー) で実行され、PHP がサーバー側ツール (つまりサーバー側) であることを知って育ちました。明らかに、2つは相互作用できません。

しかし -- 朗報です。動作させることができます。その方法は次のとおりです。

目的は、サーバーから Javascript 環境に動的情報 (サーバー構成アイテムなど) を取得して、必要なときに使用できるようにすることです。通常、これは、プレゼンテーションに対する DHTML の変更を意味します。

まず、DHTML の使用法を明確にするために、次の DHTML の例を引用します。

<script type="text/javascript">

function updateContent() {
 var frameObj = document.getElementById("frameContent");
 var y = (frameObj.contentWindow || frameObj.contentDocument);

 if (y.document) y = y.document;
 y.body.style.backgroundColor="red";  // demonstration of failure to alter the display

 // create a default, simplistic alteration usinga fixed string.
 var textMsg = 'Say good night Gracy';

 y.write(textMsg);

 y.body.style.backgroundColor="#00ee00";  // visual confirmation that the updateContent() was effective

}
</script>

ID="frameContent" を含む html ファイルがどこかにあると仮定すると、単純な < body onload="updateContent()" > で表示を変更できます。

ゴーリージー; これを行うために PHP は必要ありません。しかし、これにより、PHP が提供するコンテンツを適用するための構造が作成されます。

問題の Web ページを PHTML タイプに変更して、サーバー側の PHP がコンテンツにアクセスできるようにします。

**foo.html becomes foo.phtml**

そのページの上部に追加します。また、後でアクセスできるように php データをグローバルにロードします - 次のように:

<?php
   global $msg1, $msg2, $textMsgPHP;

function getContent($filename) {
    if ($theData = file_get_contents($filename, FALSE)) {
        return "$theData";
    } else {
        echo "FAILED!";
        }
}
function returnContent($filename) {

  if ( $theData = getContent($filename) ) {
    // this works ONLY if $theData is one linear line (ie remove all \n)
    $textPHP = trim(preg_replace('/\r\n|\r|\n/', '', $theData));
    return "$textPHP";
  } else {
    echo '<span class="ERR">Error opening source file :(\n</span>';  # $filename!\n";
  } 
}

// preload the dynamic contents now for use later in the javascript (somewhere)
$msg1 =       returnContent('dummy_frame_data.txt');
$msg2 =       returnContent('dummy_frame_data_0.txt');
$textMsgPHP = returnContent('dummy_frame_data_1.txt');

?>

これで、javascript は次のように PHP グローバルにアクセスできます。

// グローバルにアクセスして var textMsg = '< ? PHP グローバル $textMsgPHP; echo "$textMsgPHP"; ? >';

JavaScript で、次のように置き換えます。

var textMsg = 'Say good night Gracy';

with: // php returnContent() を使用

var textMsg = '< ? php $msgX = returnContent('dummy_div_data_3.txt'); エコー "$msgX" ? >';

概要:

  • 変更する Web ページは、phtml または何らかの php ファイルでなければなりません
  • そのファイルの最初のものは < ? 動的データを取得する php ?>
  • PHP データには独自の CSS スタイルが含まれている必要があります (コンテンツがフレーム内にある場合)
  • 動的データを使用する JavaScript は、この同じファイルにある必要があります
  • 動的データにアクセスするために、必要に応じて PHP に出入りします
  • 注意:- 外側の JavaScript では一重引用符を使用し、動的 ​​php データでは二重引用符のみを使用してください

解決予定: ファイル名を指定してupdateContent()を呼び出し、 onLoad( )の代わりにonClick()を介して使用する

検査のために Sample_Dynamic_Frame.zip で例を提供できますが、それを添付する手段が見つかりませんでした

于 2013-12-27T19:01:32.180 に答える
3

javascript で PHP を実行することはできません。JavaScript はクライアント側のテクノロジー (ユーザーのブラウザーで実行) であり、PHP はサーバー側のテクノロジー (サーバー上で実行) です。

これを行うには、PHP スクリプトに ajax リクエストを送信し、探している結果を返す必要があります。

なぜこれをしたいのですか?

于 2012-09-19T16:21:39.430 に答える
2

ユーザーがボタンをクリックしたときに、ページの特定の場所で PHP からのメッセージをエコーし​​たい場合は、次のようにすることができます。

<button type="button" id="okButton" onclick="funk()" value="okButton">Order now</button>
<div id="resultMsg"></div>
<script type="text/javascript">
function funk(){
  alert("asdasd");
  document.getElementById('resultMsg').innerHTML('<?php echo "asdasda";?>');
}
</script>

ただし、スクリプトでアイテムをカートに追加するなどのサーバー側の処理を行う必要がある場合は、jQuery のhttp://api.jquery.com/load/を確認してください。jQuery を使用して、処理を行うphpスクリプト。あなたの例では、次のことができます:

<button type="button" id="okButton" onclick="funk()" value="okButton">Order now</button>
<div id="resultMsg"></div>
<script type="text/javascript">
function funk(){
  alert("asdasd");
  $('#resultMsg').load('path/to/php/script/order_item.php');
}
</script>

これにより、php スクリプトが実行され、返されたメッセージが にロードされ<div id="resultMsg">ます。

order_item.php は商品をカートに追加し、表示したいメッセージをエコーするだけです。この例を機能させるには、order_item.php として十分です。

<?php
// do adding to cart stuff here
echo 'Added to cart';
?>

<head>これを機能させるには、タグにこれを追加して、ページに jQuery を含める必要があります。

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
于 2012-09-19T16:36:23.707 に答える
1

フォーム要素を作成し、アクションを .php ページとして配置することで、JavaScript で php を使用できます。次に、JavaScript を使用してそのフォームを送信します。元:

<!doctype html>
 <html>
 <head>
 <title>PHP Executed with JS</title>
  </head>
  <body>
  <form action="phpCode.php" id="phpCode">. 
  </form> <!-- This is the form-->
   <script>
        function runPhp() { 
         var php = 
document.getElementById("phpCode")
        php.submit() //submit the form 
        }
    </script>
  </body>

PHP ファイル名は phpCode.php になります。そのファイルには、PHP コードがあります。

于 2021-07-22T20:49:36.833 に答える
0

このようにすることができます:

    <?php 
     if($_SERVER['REQUEST_METHOD']=="POST") {
       echo 'asdasda';
     }
    ?>

    <form method="post">
    <button type="submit" id="okButton">Order now</button>
</form>
于 2012-09-19T16:26:23.563 に答える
0

jquery ライブラリを含めたくない場合は、次のように簡単に実行できます。

a) iframe の広告、サイズ 0px で非表示、href は空白

b) js コード関数内でこれを実行します

 window.frames['iframename'].location.replace('http://....your.php');

これによりphpスクリプトが実行され、たとえばデータベースの更新を行うことができます...

于 2013-05-03T13:13:47.160 に答える
0

PHPを非表示のdivに入れてから、javascriptで呼び出します

php部分

<div id="mybox" style="visibility:hidden;"> some php here </div>

JavaScript部分

var myfield = document.getElementById("mybox");
myfield.visibility = 'visible';

これで、myfield で何でもできます...

于 2013-10-05T18:00:42.673 に答える