0

レベル: 初心者

javascript ファイルで ajax を使用して、ユーザー プロファイル データをデータベースから html ページに表示しようとしました。しかし、常に 404 エラーが発生します。ユーザーがプロファイルを更新できるように、ユーザー プロファイルを HTML 形式で表示したいと考えています。

何が悪いのかわからない。私たちを手伝ってくれますか?これが私のコードです。

ありがとうございました。

サーバー側の私のphpコード: コントローラーとしてのnewpass.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class newpass extends CI_Controller {

    function __construct()
    {
        parent::__construct();
        $this->load->model('newpass_model','npmod');
    }

    //to get the user profile
    public function read() {
        $iduser = $this->session->userdata('id');
        if(isset($iduser))
        echo json_encode($this->npmod->getByIdUser($iduser));
    }

    //to edit the user profile
    public function update() {
    $iduser = $this->session->userdata('id');
    $data = array(
        $nm = $this->input->post('nama'),
        $tmp = $this->input->post('tempat'),
        $tgl = $this->input->post('tanggal'),
        $jk = $this->input->post('jeniskelamin'),
        $tb = $this->input->post('tinggi'),
        $bb = $this->input->post('berat'),
        $gol = $this->input->post('golongan'),
        $kt = $this->input->post('kontak'),
        $nokt = $this->input->post('kontak_kel'),
        $emkt = $this->input->post('kontak_em')
    );
        if($$nm=='' || $tgl=='' || $jk=='' || $tb=='' || $bb=='' || $gol=='' || $kt=='' || $nokt=='' || $emkt=='')
        {
            echo "0";
        }
        else
        {
            $this->npmod->update($iduser,$data);
            echo "1";
        }
    }
}
?>

サーバー側の私のphpコード: モデルとしてのnewpass_model.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class newpass_model extends CI_Model {      

    //to get the user profile
    function getByIdUser($iduser) {
        $iduser = intval( $iduser );

        $query = $this->db->where('iduser',$iduser)->limit( 1 )->get('pasien');

        if( $query->num_rows() > 0 ) {
            return $query->row();
        } else {
            return array();
        }
    }   

    //to edit the user profile
    public function update($iduser,$data) { 
        $this->db->where('iduser',$iduser);
        $this->db->update('pasien',$data);
   }
}
?>

クライアント側の私の JavaScript コード: newpass.js

/*Don't forget to add set_ip.js and jquery before you use this script in HTML page to make it work*/
var urlini = seturl();
var part= 'newpass/';

var readUrl   = urlini+part+'read',
    updateUrl = urlini+part+'update';

$( function() {  
    readUsers();
}); //end document ready

//to update profile
function update_profile() {

    name = /^([-a-z0-9_-]{5,50})+$/i.test($("#nama").val());
    bb = /^([-0-9_-])+$/i.test($("#berat").val());

    var form_reg =  $("input").val();
    if(form_reg == "")
    {
        alert("Semua data harus diisi.");
    }
    else if(!name || !bb)
    {
        alert("Terdapat kesalahan atau data kosong pada pengisian data.\nPastikan password Anda sesuai.");
    }
    else
    {
        $.post(urlini+part+'update',
        $('#edit_profile').serialize(),function(msg){
        if(msg == '0')
        {
            alert("Masih ada data yang kosong.");
        }
        else if(msg == '1')
        {
            alert("Data berhasil disimpan!");
            window.location="home.html";
        }
    });
    }
}

function readUsers() {
$.ajax({
        url: readUrl,
        dataType: 'json',
        success: function( response ) {

                $( '#nama' ).val( response.nama);
                $( '#tempat' ).val( response.tempat);
                $( '#tanggal' ).val( response.tanggal);
                $( '#jeniskelamin' ).val( response.jeniskelamin);
                $( '#tinggi' ).val( response.tinggi);
                $( '#berat' ).val( response.berat);
                $( '#golongan' ).val( response.golongan);
                $( '#kontak' ).val( response.kontak);
                $( '#kontak_kel' ).val( response.kontak_kel);
                $( '#kontak_em' ).val( response.kontak_em);
                //--- assign id to hidden field ---
                $( '#userId' ).val( response.id );
            }
    });
} // end readUsers

クライアント側の私の JavaScript コード: set_ip.js

//where the set the domain name
var ip = 'localhost';
var urlnya = 'http://'+ip+'/diabet_console/';
function seturl()
{    
    return urlnya;
}

クライアント側の私のhtmlコード: settings.html

<!DOCTYPE HTML>
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0"/>
<link rel="stylesheet" type="text/css" href="css/style1.css" />

 <link href="date/kendo.common.min.css" rel="stylesheet">
    <link href="date/kendo.default.min.css" rel="stylesheet">

    <script src="date/js/jquery.min.js"></script>
    <script src="date/js/kendo.web.min.js"></script>
    <script src="date/js/console.js"></script>
    <script src="jq/proses/set_ip.js"></script>
    <script src="jq/proses/newpass/newpass.js"></script>
    <script src="jq/proses/script.js"></script>

<script>
        $(document).ready(function() {
        // create DatePicker from input HTML element
        $("#tanggal").kendoDatePicker({
        start: "date",
        depth: "year",
        format: "dd/MM/yyyy",
        });
    });
    </script>
<title>edc - e diabet consult</title>
</head>
<body>
<h1 align="center">Edit Profile</h1>
<p align="center" class="navigation">
<a href="home.html" title="Kembali ke CPanel">
<img src="ico/home.png">
</a>
<a href="pengaturan.html" title="Change Password">
<img src="ico/pass.png">
</a>
<a href="ranges.html" title="Set Target Range">
<img src="ico/setting.png">
</a>
</p>
<div id="updateDialog">
<form id="edit_profile" action="" method="post">
<p width="50%" align="center">
<strong>Nama Pasien</strong><br>
<input type="text" maxlength="350" id="nama" name="nama"><br>

<strong>Tempat Lahir</strong><br>
<input type="text" maxlength="350" id="tempat" name="tempat"><br>

<strong>Tanggal Lahir</strong><br>
<input type="text" maxlength="350" id="tanggal" name="tanggal" value="01-02-2013"><br>
<br>
<strong>Jenis Kelamin</strong><br>
<input class="float" type="radio" id="jeniskelamin" name="jeniskelamin" value="L">Laki-Laki 
<input class="float" type="radio" id="jeniskelamin" name="jeniskelamin" value="P">Perempuan<br><br>

<strong>Tinggi Badan (cm)</strong><br>
<input type="text" id="tinggi" name="tinggi"><br>

<strong>Berat Badan (kg)</strong><br>
<input type="text" id="berat" name="berat" value=''><br>

<strong>Golongan Darah</strong><br>
<input class="float" type="radio" id="golongan" name="golongan" value="A">A 
<input class="float" type="radio" id="golongan" name="golongan" value="B">B
<input class="float" type="radio" id="golongan" name="golongan" value="AB">AB
<input class="float" type="radio" id="golongan" name="golongan" value="O">O<br>
<br>

<strong>Kontak Pasien</strong><br>
<input type="text" id="kontak" name="kontak" value=''><br>

<strong>Kontak Keluarga</strong><br><br>
<strong>No.Telepon</strong><br>
<input type="text" id="kontak_kel" name="kontak_kel" value=''><br>

<strong>Email</strong><br>
<input type="text" id="kontak_em" name="kontak_em" value=''><br>

<input type="submit" value="Simpan" id="simpan" class="button" onclick="update_profile()">
<input type="reset" value="Reset" class="button">

</p>
<br><br/>
</form>
</div>
</body>
</html>
4

2 に答える 2

0
function readUsers() {
$.ajax({
        url: readUrl,
        dataType: 'json',
        type: 'POST', // is missing in your ajax call also it might type:get if form  submission is get
于 2013-03-26T08:24:05.320 に答える
0

フィドラーを使用して、Chrome または IE の AJAX 呼び出しまたは開発者ツールを介して要求されている URL を確認してください。IE では F12 を使用でき、開発者ツールではネットワークを使用し、[キャプチャの開始] をクリックして ajax 関数を呼び出します。URL が正しいかどうか、または予期されたものかどうかを確認してください。

于 2013-03-26T08:07:13.963 に答える