php-Code Igniter-window.location.hashでハッシュ値を取得してset_value()で使用しますか?
javascriptを使用して現在のウィンドウURLからハッシュ値を取得し(PHPでは取得できません)、それを使用してCIのset_value()関数で入力されたフォームの値属性を設定する必要があります。
javascriptで値を取得し、それをPHP関数に入れる方法について何かアイデアはありますか? :-S
よろしくお願いします!
答え :
解決策:
JavascriptとPHPの関係を完全に理解しているかどうかはわかりません。そのため、理解していないと想定します。 PHPはサーバー上で実行され、HTMLをブラウザーに出力します(いくつかのヘッダーやその他のものとともに)。 HTMLがブラウザーに送信されると、ブラウザーが別のGETまたはPOST要求を実行する(または永続的なWebソケット接続を開く)まで、ユーザーがサイトで行うことは制御できなくなります。おっしゃるように、ハッシュの値を完全に読み取ることは不可能です。これは、ブラウザーに限定され、Javascriptを介してのみアクセスできるようにするためです。その特定のリクエストのPHPスクリプトの実行が停止し、ページデータが既にブラウザに出力されているため、Javascriptを使用して値を取得し、別のhttpリクエストでPHPに送り返し、set_value()を使用することはどのような意味がありますか。機能、そして何?
window.location.hashを使用し、入力ボックスの値をそれに等しく設定すると、ユーザーがフォームを送信するときにset_value()を使用できるようになります。 CIのset_value()ヘルパー関数を見てください:
function set_value($field = '', $default = '')
{
if (FALSE === ($OBJ =& _get_validation_object()))
{
if ( ! isset($_POST[$field]))
{
return $default;
}
return form_prep($_POST[$field], $field);
}
return form_prep($OBJ->set_value($field, $default), $field);
}
最初に、フォーム検証オブジェクトが設定されているかどうかを確認します。ある場合は、そのオブジェクトのset_valueを使用してform_prep()関数を実行します(おそらく、フォーム検証で設定したルールを管理します。まだ行っていない場合は、そのフィールドが$_POST配列に存在するかどうかを確認します。そうでない場合は、デフォルト値を返します。そうである場合は、$ _ POST配列から値を返します。したがって、a)フォーム検証ルールを設定し、b)その入力ボックスに必要な名前を付けます。 set_value()関数で使用すると、Javascriptを使用してその入力ボックスに入力したPHPのハッシュの値を取得できます。
答え :
解決策:
Javascriptでは、このvisを実現できます <コード> {-コード-1}
PHPでは、 parse_url()
parse_url():戻り値 深刻な不正な形式のURLでは、parse_url()がFALSEを返す場合があります。それ以外の場合は、連想配列が返されます。そのコンポーネントは(少なくとも1つ)次のようになります。 *スキーム-例: http * 亭主 * ポート *ユーザー * パス * 道 *クエリ-疑問符の後? *フラグメント-ハッシュマークの後#
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。