1

I am using an onclick function in my html (so not a method, but the javascript code itself in the html button onclick event).

How do I add 2 statements in the 1 line after an IF statement, that is not surrounded by curly braces.

I want to do something like this

onclick="javascript: if ( days.value == '' ) alert('Please select at least 1 day to schedule this report') && return false;" 

I can't use the curly braces to enclose the two statements because I can't find any information on outputting a curly brace into a string in PHP (If i do, the output stops after the first curly brace)

My PHP looks like this:

$content["PREPEND"].= " onclick=\"javascript: if ( days.value == '' ) alert('Please select at least 1 day to schedule this report') && return false; \"";

I tried using the &&, but that doesnt work. Any advise appreciated!

4

5 に答える 5

2

Javascript コードは、PHP コードとは何の関係もありません。好きなブレースを使用できます。

中括弧で何か問題が発生した場合は、それらを間違った方法で配置しているだけです。ブレースを回避する醜い方法を探すのではなく、 ブレースを修正する必要があります。

エラーを修正することは、プログラミングでは非常に簡単な作業です。

実際に PHP コードが JS に干渉している場合 (質問に PHP 演算子が 1 つも投稿されていないため、確信が持てません)、PHP モードを閉じて、JS をそのまま記述します。 HTML ページ:

//some php
// then close it
?>
<a href="#" onclick='javascript: if ( days.value == "" ) { alert("Please select at least 1 day to schedule this report"); return false; }'>
<?php
// open PHP back

JS 内に PHP の値が必要な場合は、PHP を再度開きます。

//some php
$var = "test";
// then close it
?>
<a href="#" onclick='javascript: if ( days.value == "<?=$var?>" ) { alert("Please select at least 1 day to schedule this report"); return false; }'>
<?php
// open PHP back
于 2012-04-23T07:59:41.157 に答える
1

テストせずに、引用符を反転してみましたか (double を single に、single を double に変えます)? PHP は、二重引用符で作成された文字列を、単一引用符で作成された文字列とは異なる方法で扱います...

onclick='javascript: if ( days.value == "" ) { alert("Please select at least 1 day to schedule this report"); return false; }' 
于 2012-04-23T08:01:01.807 に答える
0

まず第一に、それは悪い習慣です。ただし、falseを返す場合は重複を追加できます

于 2012-04-23T07:58:59.910 に答える
0

2 つのステートメントを JavaScript 関数に入れ、if ステートメントで関数を呼び出します。

于 2012-04-23T08:00:47.057 に答える
0

「中かっこを使用して 2 つのステートメントを囲むことはできません。PHP で中かっこを文字列に出力する方法に関する情報が見つからないためです (そうすると、最初の中かっこの後で出力が停止します)」 - Can' '{...}' を印刷して中括弧を印刷するだけですか?

于 2012-05-02T12:48:22.830 に答える