0

ユーザーがリンクをクリックしたときに、いくつかの php コードを実行する必要があります。ここで答えを見つけ、サイトのヘッダーにこれを書きました:

<script type="text/javascript">
function sottoponi() {
$.get("sottoponi.php");
return false;
}
</script>

これは、コードが必要な本文にあります。

<a href="#" onclick="sottoponi();">Prova</a>

そして、sottoponi.phpにこれを書きました

<?php 
$variable= value; 

if ($variable < 1) {
// do some php code;
}

else if ($variable > 1) {
$jav1 = <<<MAR1
<script language="javascript" type="text/javascript">
alert("Error!");
</script>
MAR1;
echo $jav1;
}

?>

アラートが表示されないので、間違っていると確信しています (そして、$variable > 1 が true であると確信しています。変数をエコーし​​ました!): どうすれば sottoponi.php から実際のページ?

4

5 に答える 5

4

alert生成された js コードがページに追加されていないため、取得できません。これを実行するには、ajax リクエストからのレスポンスを取得して DOM に追加する必要があります。

function sottoponi() {
    $.get("sottoponi.php", function(response){
        $('body').append(response);
    });
    return false;
}

このソリューションはあまりエレガントではないことに注意してください。このような状況で私が行うことは、PHP から JSON で応答することです。そのため、操作が成功したかどうかを js 側から簡単に知ることができます。

function sottoponi() {
    $.getJSON("sottoponi.php", function(response){
        if(response.error !== false) {
            alert("ERROR!");
        }
    });
    return false;
}

そのための PHP は次のようになります。

<?php 
$variable = value; 
$response = array('error' => false);

if ($variable < 1) {
    // some php logic;
} else if ($variable > 1) {
    $response['error'] = true;
} else {
   // some more logic here if needed
}
echo $json_encode($response);
?>
于 2012-12-09T17:37:38.867 に答える
2

スクリプト全体を送信して処理したい場合は、代わりに jQuery の getScript 関数を使用する必要あり$.getScript("sottoponi.php");ます。

$.get("sottoponi.php", function(res) {
    alert(res);
});

複雑な構造の場合は、PHP のjson_encodeでエンコードできます。

于 2012-12-09T17:40:48.770 に答える
0

jQuery.ajax()の省略形であるjQuery.get ()を使用しています。したがって、以下は、sottoponi.phpに送信するためのより明確な方法です。

$.ajax({
    url: "sottoponi.php",
        type: "POST",
        success:function(result){
            //You can place an alert here such as: alert("Successful Ajax Request Complete");
        }
});
于 2012-12-09T17:50:36.540 に答える
0

へへへ、問題を明確にします:-)。さて、私はあなたに言います。プロセスの順序はそのコメントの逆です。テーブルに最初のデータを記録してから、ダウンロードに進みます。私が提供したコードを活用すると、次のようになります。 '". $ time."') " if ($ result = mysql_query ($ query, $ link)) { // / 正しく記録された } else { // 記録が記録されなかった } // ダウンロードに進む. header ( "location :". $ program); } else { echo "Error. Invalid file"; } これが役に立てば幸いです (データベース サーバーへの接続やベースの選択などがないため、コードについてはあまり掘り下げていません。 ..)ですが、基本的にはもちろん、それを変更して、テーブルに適切に記録された場合にヘッダーを if 内に配置して、ダウンロードをより詳細に制御できます。ご挨拶。

于 2012-12-10T02:16:25.023 に答える
-1

PHP と Javascript を混在させます。alert()PHP コードで呼び出すことはできません。必要な場合alert()は、Javascript で行う必要があります

<script type="text/javascript">
function sottoponi() {
$.get("sottoponi.php");
alert("Error!");
return false;
}
</script>
于 2012-12-09T17:37:01.227 に答える