VIEW
フォルダに2つのファイル:addcustomer.php
とphoneError.php
があります。CodeigniterでonkeyupイベントのAjax関数を取得する方法
addcustomer.php
<input type="text" id="textHint" onKeyUp="showHint(this.value)" name="phone" placeholder="1235558888">
<span id="txtHint"></span>
<script type="text/javascript" >
function showHint(str) {
var base_url = <?php echo base_url(); ?>
if (str.length == 0) {
document.getElementById("txtHint").innerHTML = "";
return;
}
else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
// Get $p from phoneError.php
(xmlhttp.open("GET", "phoneError.php?p=" + str, true));
xmlhttp.send();
}
}
</script>
<input type="text" id="textHint" onKeyUp="showHint(this.value)" name="phone" placeholder="1235558888">
<span id="txtHint"></span>
phoneError.php
<?php
defined('BASEPATH') || exit('No direct script access allowed');
$p = $_REQUEST['p']; // required
$string_exp = "/^[0-9]{3}[0-9]{3}[0-9]{4}$/";
if ($p == !preg_match($string_exp, $p)) {
echo $error_message .= '<span style="color:red">Oops! The Phone you entered does not appear to be valid.</span>';
}
?>
私は、入力された有効な電話番号を確認するためにaddcustomer形式でonkeyup
イベントにAjaxの機能を追加したいです。私はaddcustomerメソッドを呼び出して、コントローラにphoneError
をロードしましたが、動作しませんでした。 xmlhttp.open "GET"
の正しいURLを入力したかどうかわかりません。
コントローラでphoneErrorをロードしますか? public function phoneError(){ this-> load-> view( 'customer/phoneError'); } ht – jenii
では、 'public function phoneError()'にビューをロードする必要はありません。 –