誰でもphp変数をjavascript関数に渡し、javascript変数をphpスクリプトに渡す方法を教えてもらえますか
echo "<td><a href='#' onclick='disp_confirm($row->university)'>Delete</a></td>";
私を助けてください。
誰でもphp変数をjavascript関数に渡し、javascript変数をphpスクリプトに渡す方法を教えてもらえますか
echo "<td><a href='#' onclick='disp_confirm($row->university)'>Delete</a></td>";
私を助けてください。
中かっこを追加すると機能します:
echo "<td><a href='#' onclick='disp_confirm({$row->university})'>Delete</a></td>";
onclick で文字列を引用する必要があります。
echo "<td><a href='#' onclick='disp_confirm(\"{$row->university}\")'>Delete</a></td>";
変数を Javascript に出力するには、中かっこを追加するだけです (これは、二重引用符で囲まれた文字列を発行している場合にのみ機能するため、次のようになります。
echo "<td><a href='#' onclick='disp_confirm({$row->university})'>Delete</a></td>";
動作し、
echo '<td><a href="#" onclick="disp_confirm({$row->university})">Delete</a></td>';
動作しません。等についても{$variables}
同様。{$array['of values']}
(上記のコードで$row->university
は、整数でなければなりません。そうしないと、Javascript エラーが発生します。その場合は、エスケープされた一重引用符で値を引用してください)
更新( Mihai Iorgaに感謝): 変数が Javascript コードとどのように相互作用するかを考慮する必要があります。変数自体に引用符が含まれている可能性があるため、文字列を引用するだけでは十分ではありません。あなたの大学が「Shi'Kahr University」の場合、HTML は次のようになります。
onclick='disp_confirm(\'Shi'Kahr University\')'
Javascriptはすぐに壊れます。したがってaddslashes()
、文字列が適切に引用されていることを確認するためにも使用する必要があります。string内に文字列を書いているのでaddslashes()
、取得するには2回呼び出す必要があります
onclick='disp_confirm(\'Shi\\\'Kahr University\')'
サーバー側で Javascript 値を PHP スクリプトに渡すには、AJAX (jQuery ライブラリなど) を使用するか、URL に値を追加してページをリロードします。
alert("Submitting " + value);
location.href = '?variable=' + value;
スクリプトは最初から再度実行され(これが必要な場合とそうでない場合があります)、value$_GET['variable']
が含まれます。2 つのケースは、次のように区別できます。if
<?php
if (isset($_GET['variable']))
{
// This is the second round
}
else
{
// This is the first time
}
// common code goes here
?>
最後に、PHP と Javascript を混在させることができるライブラリーがあります。これらは基本的に上記のように機能しますが、重労働、変数の受け渡し、エスケープ、およびコールバックを処理します。たとえばXAJAXを参照してください。ただし、他にもいくつか存在します。
フォームを送信して情報を送信するか (JS はサーバーではなくクライアント側にあるため)、または AJAX を使用して情報を送信しない限り、JavaScript 変数を PHP に渡すことはできません。
PHP 変数を JS に書き込みたい場合は、次のように変数を HTML/JS コードにエコーする必要があります。
<td><a href='#' onclick='disp_confirm(<?php echo $row->university?>)'>Delete</a></td>
また:
function name() {
var i=<?php echo $data?>;
...
}