安室奈美恵、DA PUMP!!ユーロビート最強曲!!

お世話になります。
PHPでVBみたいな
メッセージボックス表示は
できるのでしょうか?
レンタルサーバのPHPMYADMIN
では、クエリ実行の確認時にでるのですが・・
できればボタンクリック時に別画面に遷移して
処理したくないので。
宜しくお願い致します。

A 回答 (2件)

PHPはサーバサイドです。


サーバ上で動作しています。

メッセージボックスは、クライアント側の処理になります。

>レンタルサーバのPHPMYADMINでは、クエリ実行の確認時にでるのですが・・

単純にjavascriptで表示させているだけだとおもいます。
alertとかで。
    • good
    • 0

phpが直接画面描画を行うのでありません


ブラウザが理解できるもの(HTMLやJavaScriptやCSS等)を出力させるように人間が書いてあげる必要があります
PHPに限らず、サーバーサイドスクリプトは全てこの制約に縛られます
    • good
    • 0
この回答へのお礼

ありがとうございます。
PHP-GTK 2 で見かけたもので・・
お蔭様で解決しました。

お礼日時:2007/10/30 21:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QPHPでjavascriptのalert文のようにデバッグ

こんにちは

現在、Flash からPHPにデータを渡して、それがPHPにわたっているかどうかを調べたいのですが、echo文などで出力してもそれがブラウザで表示されないので、どうしたらよいかわかりません。。。orz

javascriptのalert文のように警告ウィンドウを利用して変数の値などを調べる関数はあるのでしょうか?
また、なにか他によい方法がありましたら教えていただけるとありがたいです。

よろしくお願いします

Aベストアンサー

var_dump(変数)

echo で値が出ないということは、おそらく値が null もしくは空文字だと思います。

参考URL:http://jp.php.net/manual/ja/function.var-dump.php

QボタンをクリックでPHP文を実行

ボタンをクリックしたときのみPHP文を実行したいのですが・・・

<input type="button" onClink="<?php~?>">
でいけるかと思ったのですが、
ページ表示時に<?php~?>が実行されてしまい、うまくいきませんでした。

onClink="window.open(test.php)"
という方法以外でお願いします。

Aベストアンサー

AjaxはもともとJavaScriptの機能である非同期通信をつかったもので。Ajaxという言語があるわけではありません

Ajaxを利用するのであれば、JavaScriptのXMLHttpRequestを使って非同期通信できるような実装をしなくてはなりません
簡単にサンプルコードで書けるほど単純なものでもありません

一般的なサーバーサイドスクリプトの動作として、
ボタンを押す->サーバーへリクエストする->サーバーが処理する->クライアントに何かしらの結果を返す(出力する)です
つまり、PHP等のサーバーサイドスクリプトは、遷移させることが大前提で動作します

ですから、ボタンを押してその場でJavaScriptと同じようにPHPが動くなんてことはありえません。
ボタンを押したらサーバーにリクエストする という動作ならば可能です。

つまり
質問で言われているような
onClink="window.open(test.php)"

<form name="f1" action="test.php" method="post">
<input type="submit" name="submit" value="submit" />
</form>
等のような形になります

こういった一般的な方法だと いちいち画面が切り替わったようになってしまうのを嫌って Ajaxでコレと同じことを、画面を切り替えずに行っているだけに過ぎません

AjaxはもともとJavaScriptの機能である非同期通信をつかったもので。Ajaxという言語があるわけではありません

Ajaxを利用するのであれば、JavaScriptのXMLHttpRequestを使って非同期通信できるような実装をしなくてはなりません
簡単にサンプルコードで書けるほど単純なものでもありません

一般的なサーバーサイドスクリプトの動作として、
ボタンを押す->サーバーへリクエストする->サーバーが処理する->クライアントに何かしらの結果を返す(出力する)です
つまり、PHP等のサーバーサイドスクリプトは、...続きを読む

QPHPの関数実行

<?php
function disp(){
echo "hello world";
}
?>

<form>
<input type="text">
<input type="button" onclick="<?php disp() ?>">
</form>

といったソースを書いてみたのですが、ボタンを押してみるのですが作動しません。
どこか間違えているのでしょうか、それとも作動しないのでしょうか・・・。
当方としては、formのinputボタンを押したらPHPの関数が実行させるようにしたいのですが・・・。
どなたかご助言をお願いします。

Aベストアンサー

ウソつきました
出来ましたー

<?php

if($_REQUEST[submit] == TRUE){
function disp(){
echo "hello world";
}
}

else{
function disp(){
echo "";
}
}

?>

<form method="post" action="">
<input type="text" value="<?php disp(); ?>">
<input name="submit" type="submit"value="押せ">
</form>

Qsyntax error, unexpected '}' というエラーの対処法

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" maxlength="3" />
<input type="sbumit" value=回答" />
</form>
<hr />
<?php
session_start();
if(is_null($_SESSION['answer'])){
mt_stand(microtime()*1000000);
$_SESSION['answer']=mt_rand(1,100);
$_SESSION['game_cnt']=0;
}
if($_POST['answer']!=""){
$_SESSION['game_cnt']++;
if($_session['answer']==$_POST['answer']){
print("おめでとうございます".
$_SESSION['game_cnt']."回で正解しました!");
session_destroy();
}else{
if($_SESSION['answer']>$_POST['answer']){
print("もう少し大きいです。");
}else
print("もう少し小さいです。");
}
}
}
?>
</body>
</html>
それとこの間違えたところをなおしたあとはいつもコンピュータを再起動しないと修正したところが適用されないのですがほかに方法はないですか?基本的な質問ですいません。

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" max...続きを読む

Aベストアンサー

print("もう少し大きいです。");
}else
print("もう少し小さいです。");
のelseの後に{がないようですが、大丈夫でしょうか?

QPHPの文字列変数をJavaScriptのalertで表示させたい

<?php
 $mes = 123;
print<<<EOF
 <script Language="JavaScript">
 <!--
  JavaScript:alert( $mes );
 //-->
 </script>
EOF;
?>

↑のコードを実行すると123というメッセージボックスが表示されます。

<?php
 $mes = "aaa";
print<<<EOF
 <script Language="JavaScript">
 <!--
  JavaScript:alert( $mes );
 //-->
 </script>
EOF;
?>

しかしこのように数値変数でははく文字列変数を渡すと表示できません。
JavaScriptにPHPの文字列変数を受け渡すことはできるのでしょうか?

Aベストアンサー

前提:
一旦PHPの事は忘れます。あとjavascript:alert("hoge");じゃなくてalert("hoge");にします
EcmaScriptのParserからみると
それぞれ

<script type="text/javascript">
alert( 123 );
</script>

<script type="text/javascript">
alert( aaa );
</script>

を解釈することになるんですが,
後者のaaaは
「文字列リテラル"aaa"ではなく宣言されずに使われている【変数】aaaです。」
前者は
「変数ではなく数値リテラルの123です。」

EcmaScriptの立場で

<script type="text/javascript">
alert("aaa");
</script>
となるように

<?php
$mes = "aaa";
print<<<EOF
<script type="text/javascript">
alert("$mes");
</script>
EOF;
?>

と書いてみると,確かにaaaという文字列がウィンドウに表示されます。
ただし,【原理を説明するためにこういうコードを書いたけど、正直お勧めできません。】

a(改行)bを表示しようとして

<?php
$mes = "a\nb";
print<<<EOF
<script type="text/javascript">
alert("$mes");
</script>
EOF;
?>

と書いてしまうと,PHPは正しく実行されますが,EcmaScriptでコンパイルエラーになります。
PHPと違い,文字列リテラル中に改行を入れることできないので。

<?php
$mes = "a\"";
print<<<EOF
<script type="text/javascript">
alert("$mes");
</script>
EOF;
?>

となってもやっぱりEcmascript側でコンパイルエラーが出るでしょう。(それぞれ正しく表示される書き方がありますね?)
その場限りの対処で,後手後手になってバグの温床になるのは防ぎたいものですな。

そこで・・・

二つ考えてみた。

パーセントエンコードはEcmascriptのdecodeURIComponent関数で
容易にデコードでき,PHP側にもそのようなエンコードを行う関数が存在し,
http://jsgt.org/ajax/ref/charset_test/responsetext/php/urlencode.php
その中には\や"や'が出て来ず,Ecmascript側のソースの文字符号化方式が利用する文字集合を利用できる、と利点があるので

<?php
$mes = "あ\"\nb";
$encmes = (unicode)rawurlencode((binary)$mes);
print<<<EOF
<script type="text/javascript">
alert(decodeURIComponent("$encmes"));
</script>
EOF;
?>

とする。
PHP6でない場合は(binary)や(unicode)によるキャストしちゃ駄目でUTF-8の文字列にしないと駄目かも。
するとEcmaScript視点で

<script type="text/javascript">
alert(decodeURIComponent("%E3%81%82%22%0Ab"));
</script>

となり,
PHPの文字列リテラルが意味する文字列そのものが表示できるようになる。

この方法だと,クライアント側からのコードの可読性が低いので
もし,別なURIで内容を提供することができ,望ましいならば(この条件は認証とかいろんな問題が出てくるかもしれないから)
そっちに書き出しておいて
XMLHTTPRequestを使って読み取る形をとる。コードは書かないけど。
====================
ここからは余談。
1.俺はヒアドキュメントが好きじゃない。
俺の無知かもしれないが,ヒアドキュメント内で関数が使えなかったから
その外部で別な変数$enc_mesを使って可読性を低めざるを得なかった。

2.文字列リテラル中の変数展開も好きじゃない。
$fuga = "2";
$hoge = "りんごが{$fuga}個";
と書くくらいなら
"りんごが" . $fuga . "個";と書く。
'りんごが{$fuga}個'
という意味で書いたつもりでバグを作るのは嫌だから

3.一々コードを書くのも面倒くさいし,説明が解りにくくなるから書かなかったけど,
html要素,head要素,title要素,body要素等を全て省略したコードが好きじゃない。

4.PHPが吐き出すのはECMAScriptの部分だけで
別のhtmlから外部スクリプトとして読み込む形が好きだなあ。

#インタプリタなのでコンパイルエラーって表現はおかしいけど,許して。

前提:
一旦PHPの事は忘れます。あとjavascript:alert("hoge");じゃなくてalert("hoge");にします
EcmaScriptのParserからみると
それぞれ

<script type="text/javascript">
alert( 123 );
</script>

<script type="text/javascript">
alert( aaa );
</script>

を解釈することになるんですが,
後者のaaaは
「文字列リテラル"aaa"ではなく宣言されずに使われている【変数】aaaです。」
前者は
「変数ではなく数値リテラルの123です。」

EcmaScriptの立場で

<script type="text/javascrip...続きを読む

QHTMLフォームのSELECTの幅を一定にするためには?

HTMLフォームのSELECTの幅を一定にするためにはどのようにすれば
いいのでしょうか?

CSS等で設定できるとありがたいのですが、やり方がわかりません。

Aベストアンサー

<select style="width: 200px">

Qアラートでyes noを作りたいです。

PHP初心者です。よろしくお願いいたします。
ネット上で、いろいろ勉強していて、次のようなコードを見つけました。


<?php
$url = "localhost";
$user = "root";
$pass = "";
$db = "SampleDB050";

// MySQLへ接続する
$link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。");

// データベースを選択する
$sdb = mysql_select_db($db,$link) or die("データベースの選択に失敗しました。");

// クエリを送信する
$sql = "SELECT * FROM T01Prefecture";
$result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql);

//結果セットの行数を取得する
$rows = mysql_num_rows($result);

//表示するデータを作成
if($rows){
while($row = mysql_fetch_array($result)) {
$tempHtml .= "<tr>";
$tempHtml .= "<td>".$row["PREF_CD"]."</td><td>".$row["PREF_NAME"]."</td>";
$tempHtml .= "<td><a href=\"update.php?cd=".$row["PREF_CD"]."\" target=\"_self\">更新</a></td>";
$tempHtml .= "<td><a href=\"delete.php?cd=".$row["PREF_CD"]."\" target=\"_self\">削除</a></td>";
$tempHtml .= "</tr>\n";
}
$msg = $rows."件のデータがあります。";
}else{
$msg = "データがありません。";
}

//結果保持用メモリを開放する
mysql_free_result($result);

// MySQLへの接続を閉じる
mysql_close($link) or die("MySQL切断に失敗しました。");
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=SHIFT-JIS">
<title>全件表示</title>
</head>
<body>
<h3>全件表示</h3>
<?= $msg ?>
<table width = "300" border = "1">
<tr bgcolor="##ccffcc"><td>PREF_CD</td><td>PREF_NAME</td><td colspan="2">EDIT</td></tr>
<?= $tempHtml ?>
<form action="insert.php" method="post">
<tr>
<td><input type="text" name="cd"></td>
<td><input type="text" name="name"></td>
<td colspan="2">
<input type="submit" name="submit" value="追加"><input type="reset" value="リセット">
</td>
</tr>
</form>
</table>
</body>
</html>


この上のコードの、更新と削除を行うときに、Javascriptで、yes, no のアラートを出したいのですが、ちょうどデーターベースから引っ張ってきているところなので、このコードをどう変えればよいのかわかりませんでした。基本的なことを聞いてしまっているかもしれませんが、よろしくご教授願います。できるだけ、具体的にお願いします。

PHP初心者です。よろしくお願いいたします。
ネット上で、いろいろ勉強していて、次のようなコードを見つけました。


<?php
$url = "localhost";
$user = "root";
$pass = "";
$db = "SampleDB050";

// MySQLへ接続する
$link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。");

// データベースを選択する
$sdb = mysql_select_db($db,$link) or die("データベースの選択に失敗しました。");

// クエリを送信する
$sql = "SELECT * FROM T01Prefecture";
$r...続きを読む

Aベストアンサー

>更新と削除を行うときに、Javascriptで、yes, no のアラートを出したい

サーバ側の動作とクライアント側の動作の区別は理解されていますか?Ajaxを使うのでもなければ、formをsubmitする時点でアラートを出すしかありません(∴ phpではなくJavaScriptの問題です)。

http://www.tagindex.com/javascript/form/submit.html

なお(OK/キャンセルでなく)yes/noのダイアログはmsgboxを使うくらいしかありませんが、IE限定になりますのでイントラ用途でもない限りはお勧めしません。

QPHP ボタンが押されたら処理を実行する

PHPプログラミングをしています。
「はい」というボタンが押されたらこの処理を行い、
「いいえ」というボタンが押されたらこの処理を行う
ということはどうすれば実装できるのでしょうか?

Aベストアンサー

どういう環境下で作っておられるのかが全然わかりませんが、
PHPというこですので、Webベースのフォームですよね。

たとえば、「はい」ボタンと「いいえ」ボタンをそれぞれフォームのSubmitにしておいて、
POST先のフォームで処理を分ければどうでしょうか。

送信元
<form name="Hai" method="POST" action="hoge.php">
<input type="hidden" name="answer" value="1">
<input type="submit" value="はい">
</form>

<form name="Hai" method="POST" action="hoge.php">
<input type="hidden" name="answer" value="0">
<input type="submit" value="いいえ">
</form>


送信先
$answer = $_POST["answer"];

if($answer == 1){
// 「はい」の時の処理
}else{
// 「いいえ」の時の処理
}


ちなみに、自分から自分へPOSTすればPHPスクリプトも2つに分けずにできると思います。
また、POSTじゃなくGETでも同様のことはできると思います。

どういう環境下で作っておられるのかが全然わかりませんが、
PHPというこですので、Webベースのフォームですよね。

たとえば、「はい」ボタンと「いいえ」ボタンをそれぞれフォームのSubmitにしておいて、
POST先のフォームで処理を分ければどうでしょうか。

送信元
<form name="Hai" method="POST" action="hoge.php">
<input type="hidden" name="answer" value="1">
<input type="submit" value="はい">
</form>

<form name="Hai" method="POST" action="hoge.php">
<input type="hidden" name="answer" ...続きを読む

Qillegal string offset

php5.3では動いていたプログラムをphp 5.4 で動かしたらwarning illegal string offsetが出て困っています。以下のプログラムでwarningが出ないようにするにはどのようにコーディングすればよいのでしょうか?


$a = array('exists' => 'foo');
if ($a['exists']['non_existent']) {
print 1;
}
print 2;
exit;

Aベストアンサー

isset()を使えばいいと思います

Qリンクをクリックした時にformからPOST送信したい。

HTML、PHP、JavaScript等でサイトを作っているのですが・・・。

【実現出来ている例】
<form name="form1" method="post" action="Next.php" onSubmit="return InputCheck()">
 <input type="submit" value="送信">
</form>
 submitボタンを一つ置いて、それがクリックされた場合に
formの内容をPOSTで送信する。

【実現したい例】
<form name="form1 method="post">
 <a href="Next.php" onClick="???">???</a>
</form>
 formの中のリンクをクリックされた場合に、formの内容を
POSTで送信したいのですが、その実現方法がわかりません。
GETで送るという手もあり得ますが、今回はどうしてもPOST
したいのですが。

Aベストアンサー

<form name="form1" method="post" action="Next.php">
<a href="#" onClick="document.form1.submit();">???</a>
</form>

onclick内の対象がform1としてあてているので、
アンカータグは別にform内に記述しなくても大丈夫です

form内にhidden等でnameとvalueを持ったパラメータがあればそれも送られます

アンカータグから動的にvalueを変更したい場合は、
document.form1.hogename.value = 'hoge';
等をsubmit()の前に行えば可能です

ただしform内に
<input type="hidden" name="hogename" value="">
を記述する等、変更先パラメータの元を用意する必要がありますのでご注意下さい


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング