【解決方法】href パラメータにどのように値を渡しますか?


次のようなハイパーリンクで必須の3つのパラメーターを渡す必要があります

<a href="<?= base_url('report/print/') . $loc . '/' . $dept . '/' . $e_name ?>"

$loc または $dept または &e_name が none の場合、その値を設定する必要があります ゼロそうしないと、エラーが発生します。
たとえば、ここでは $loc=1 と $dept= null &e_name=null のような 1 つのパラメーター値を渡し、このようなエラーが発生しました..

404 Error - Not Found

このエラーが発生します
メッセージ: 関数 Report::print() への引数が少なすぎます。C:\xampp\htdocs\final_approval\system\core\CodeIgniter.php の 533 行目に 1 つが渡され、正確に 3 つが必要です。

これの代わりに、このように渡したい

404 Error - Not Found

誰でもこれを行う方法を手伝ってもらえますか?

私が試したこと:

<?php if($loc==''){$loc=="0";}else ($loc=$loc;} if($dept==''){$dept=="0";}else { $dep=$dept;} if($e_name==''){$e_name=="0";}else { $ename=$e_name; }?>

解決策 1

私の知る限り、PHPは null 合体演算子[^] これは、ターゲット変数が null の場合にデフォルト値を提供するために使用できます。 あなたの例では、次のことを試してください:

PHP
base_url('report/print/').($loc ?? '0').'/'.($dept ?? '0').'/'.($e_name ?? '0')

基本的にオペレーター ?? 式 (変数) の左側をチェックし、値が null 次に、式の右側を使用します。 値がそれ以外の場合は、 null (例えば、 false) その後、同じようには機能しないと思います。変数値を使用します。

解決策 2

「)」がない、または多すぎるなど、演算子にいくつかのエラーがあります。

null合体代入演算子を使用することもできます ??= コードを簡素化する – PHP Null 合体演算子[^]

undefined もいくつかの不明なエラーを返す可能性があるため、コードを base_url と少し変更しました。これにより、はるかに短く、より信頼性が高くなります –

function base_url() {
    $loc ??= 0;
    $dept ??= 0;
    $e_name ??= 0;
//If the values are empty, they will return 0 else they will return to whatever you have set them to be...

   return 'report/print/' . $loc . '/' . $dept . '/' . $e_name;
}

base_url 関数を呼び出すことができるようになりました –

<a href="<?= $url = base_url(); ?>"><?=print_r($url);?></a>

print_r は、各変数の戻り値を表示します。

コメント

タイトルとURLをコピーしました