3

シナリオ:

IF ELSEユーザーが BOX A と BOX B をクリックしたときにどこを使用するかを使用してフィルタリングを作成しました...次に、BOX A が既にいっぱいであると仮定すると、ユーザーが「保存ボタン」を押した後、確認メッセージが表示されます... 「ボックス選択したアイテムはすでにいっぱいです。他のアイテムを保存しますか?」

これが私のコードです:

<?php
//else if......
    else if($box== "BOX A" && $row[item]  == "100")
    {

        echo "<script type='text/javascript'>";
        echo "var r=confirm('The Box you chosen is already full. Do you want to save the other items?')";
        echo "if (r==true){";
        echo "alert('You pressed OK!')}";
        echo "else{";
        echo "alert('You pressed Cancel!')}";
        echo "</script>";

    }
?>

コードに問題があり、それを使用してトレースしようとするとecho "enter here"; 、プログラムがこのコードを読み取った後に常に停止します

  echo "<script type='text/javascript'>";

次に、ここにジャンプします。

 echo "</script>";

結果:

ポップアップメッセージが表示されない...ポップアップメッセージを表示するだけでいいのですが、なぜ表示されないのかわかりません...確認メッセージを表示するためのボタンはありません...それ以外の場合は通り過ぎるだけで、ボックスの1つがすでにいっぱいである場合、ユーザーが保存を続行したい場合はプロンプトが表示され、そうでない場合はキャンセルを押します...

注: 私は PHP と Javascript の初心者です。

前もって感謝します。

4

5 に答える 5

9

これは、別のタグ内で新しい<?/タグを開始するためです。<?php

else if($box== "BOX A" && $row[item]  == "100")
{
    <?php
    echo "<script type='text/javascript'>";
    echo "var r=confirm('The Box you chosen is already full. Do you want to save the other items?')";
    echo "if (r==true){";
    echo "alert('You pressed OK!')}";
    echo "else{";
    echo "alert('You pressed Cancel!')}";
    echo "</script>";
    ?>
}

する必要があります

else if($box== "BOX A" && $row[item]  == "100")
{
    echo "<script type='text/javascript'>";
    echo "var r=confirm('The Box you chosen is already full. Do you want to save the other items?')";
    echo "if (r==true){";
    echo "alert('You pressed OK!')}";
    echo "else{";
    echo "alert('You pressed Cancel!')}";
    echo "</script>";
}

でも個人的に思うのは

    else if($box== "BOX A" && $row[item]  == "100")
    {
?>
<script>
var r=confirm('The Box you chosen is already full. Do you want to save the other items?')";
if (r==true) {
    alert('You pressed OK!');
} else {
    alert('You pressed Cancel!');
}
</script>
<?
    }

よりクリーンで読みやすくなっています。javascript を PHP から遠ざけてください。回避できる場合は、エコーアウトしないでください。6か月で調査するのは難しい場合があります。

于 2013-09-28T15:06:49.193 に答える
3

または、このようなこともできます。

    <?php
    //some PHP code
    if($box== "BOX A" && $row[item]== 100)
    {
    ?>

        <script type='text/javascript'>
        var r=confirm('The Box you chosen is already full. Do you want to save the other items?');
        if (r==true){
        alert('You pressed OK!')}
        else{
        alert('You pressed Cancel!')}
        </script>

    <?php
    }
    ?>
于 2013-09-28T15:15:13.710 に答える
2

この行の前にphpタグとif文を入れたと仮定しています

else if($box== "BOX A" && $row[item]  == "100")

実際には、別の php タグを開く必要はありません。既に php で記述しているため、コードが失敗する原因となるため、再度指定する必要はありません。代わりにこのようなものを書くことができます。

else if($box == "BOX A" && $row[item] == "100")
{ ?>
    <script type='text/javascript'>
    var r=confirm('The Box you chosen is already full. Do you want to save the other items?');
    if (r==true)
        alert('You pressed OK!');
    else
        alert('You pressed Cancel!');
    </script>
  <?php
}
于 2013-09-28T15:17:01.547 に答える
0

あなたの問題は基本的に、JavaScriptをエコーし​​ているときに、;文字がまだJS行を進める必要があることを忘れているためです:

<?php
//else if......
    else if($box== "BOX A" && $row[item]  == "100")
    {

        echo "<script type='text/javascript'>
                var r = confirm('The Box you chosen is already full. Do you want to save the other items?'); // <- this was missing
                if (r == true){
                    alert('You pressed OK!');
                }
                else{
                    alert('You pressed Cancel!');
                }
                </script>";

    }
?>

私が使用するちょっとしたトリックは、PHP echo を使用すると改行を中断せずに許可できるため、いつでもコードのブロックをエコーし​​て簡単に調べることができます。

于 2013-09-28T15:16:01.717 に答える
0
$str = <<<MY_MARKER
<script type="text/javascript">
document.write("Hello World!");
</script>
MY_MARKER;
echo $str;
于 2013-09-28T15:14:39.130 に答える