0

how do I send or forward data from ajax post to the controller? I already got id_user data from ajax for edit function to controller, but can't forward or send it to the controller, so the "href" or redirect page action doesn't work, how do I send the ajax post data to the controller? sorry if there is something missing, if it's unclear you can ask me, I beg for your help ..

Note I use: php native mvc

this is my code from view user_management.php

<?php $main_controll = new App_UserManagement_Control_UserManagement(); $data_from_ctr = $main_controll->usermanagement(); ?> <script type="text/javascript"> $(document).ready(function(){ $('.delete').click(function(event){ event.preventDefault(); if(confirm("Are you sure want to delete ?")){ var username = $(this).attr("username"); var url = $(this).attr("href"); $.ajax({ type:'post', url: url, data:{username:username}, success: function(data){ alert("Data Berhasil dihapus") location.href = '<?php echo BASE_URL. "app.php/usermanagement/user_management "?>'; }, error:function(err){ alert("Data Gagal Dihapus") } }); } }); $('.edit').click(function(event){ event.preventDefault(); var id_user =$(this).attr("id_user"); var url =$(this).attr("href"); console.log(id_user); $.ajax({ type:'post', url: url, data:{id_user:id_user}, success: function(data){ alert(data) //window.location.href = '<?php //echo BASE_URL. "app.php/usermanagement/edit_user "?>'; location.href = '<?php echo BASE_URL. "app.php/usermanagement/edit_user "?>'; }, error:function(err){ alert(err) } }); }); }); </script> <fieldset> <legend> User Management </legend> <br /> <span style="font-size: 15px;"> <a style="text-decoration: underline" href="<?php echo BASE_URL. "app.php/usermanagement/add_user"?>">Add User</a> </span> <br /><br /> <table cellspacing="2" cellpadding="2" border="0" align="left" id="tablecontent"> <thead style="background-color:#eee;"> <th width="25">#</th> <!--<th width="25">id</th>--> <th width="80">Username</th> <th width="117">Name</th> <th width="117">Company Code</th> <th width="117">Company Name</th> <th width="80">User Access</th> <th width="80">Login Status</th> <th width="80">User Status</th> <th width="200">Action</th> </thead> <tbody> <?php if($data_from_ctr['user'] !== NULL): ?> <?php $i = 1; foreach ($data_from_ctr['user'] as $row): ?> <!--?php $No=0; foreach($data_from_ctr['user'] as $row) { $No++; ?>--> <tr> <td><?php echo $i++; ?></td> <!--<td><?php //echo $row ['idx'] ?></td>--> <td><?php echo $row ['_user'] ?></td> <td><?php echo $row ['_fullName'] ?></td> <td><?php echo $row ['_pyrCode'] ?></td> <td><?php echo $row ['_desc'] ?></td> <td><?php echo $row ['group_user'] ?></td> <!--<td><?php //echo $row ['_flag'] ?></td>--> <td> <?php $status = $row['_flag']; if($status == 0){ echo "Offline"; }elseif ($status == "") { echo "Online"; }else{ echo "Online"; } ?> </td> <td> <?php $active = $row ['active']; if($active == 1){ echo "Active"; }else{ echo "Non Active"; } ?> </td> <td> <a class="edit" href="<?php echo BASE_URL. "app.php/usermanagement/edit_user "?>" id_user="<?php echo $row ['idx'] ?>">Edit</a> &nbsp; <a class="delete" href="<?php echo BASE_URL. "app.php/usermanagement/delete "?>" username="<?php echo $row ['_user'] ?>">Delete</a> &nbsp; <a onclick="///return confirm('Are you sure want reset {{ row._fullName }} password ?')" href="#">Reset Password</a> </td> </tr> <?php endforeach; ?> <?php endif; ?> </tbody> </table> </fieldset> 

This is my View edit_user.php

<?php $main_controll = new App_UserManagement_Control_UserManagement(); $data_from_ctr = $main_controll->edit(); ?> <?php include_once APP_TEMPLATE_DIR . 'header_content.php'?> <script type="text/javascript"> $(document).ready(function(){ $('#level').change(function(){ var val =$(this).val(); if(val == '03' || val == '04'){ $('.limit').show(); }else{ $('.limit').hide(); } }); $('#access').change(function(){ var val = $(this).val(); if(val == 'user'){ $('.level').show(); }else{ $('.level').hide(); $('.limit').hide(); } }); $('#acctAccessed').chosen(); $("#chkall").click(function(){ if($("#chkall").is(':checked')){ $(".chosen-select option").prop('selected', true); }else{ $(".chosen-select option").prop('selected', false); } $(".chosen-select").trigger("chosen:updated"); }); $(".chosen-select").chosen(); }); </script> <form method="POST"> <fieldset> <legend> Edit User Management </legend> <table border="0" width="700" id="usermanagement"> <tbody> <tr> <td width="160"><strong>Company</strong></td> <td width="10">:</td> <td width="193" colspan="2" class="company"><span class ="id_company"><?php echo Session::get('pyrCode'); ?></span> <?php echo $data_from_ctr['account']['desc']['desc'];?></td> </tr> <tr class="odd"> <td width="150"><strong>Username</strong></td> <td width="10">:</td> <td colspan="2"> <input type="text" name="username" id="username" value="<?php echo $data_from_ctr['user']['_user']; ?>" /></td> </tr> <tr> <td width="150"><strong>Email</strong></td> <td width="10">:</td> <td colspan="2"> <input type="text" name="email" id="email" value="<?php echo $data_from_ctr['user']['email']; ?>" /> </td> </tr> <tr class="odd"> <td width="150"><strong>Status User</strong></td> <td width="10">:</td> <td colspan="2"> <input type="radio" name="status_active" value="<?php echo $data_from_ctr['user']['active']; ?>" checked="" id="aktif"/> &nbsp;Active <input type="radio" name="status_active" value="<?php echo $data_from_ctr['user']['active'];?>" id="nonaktif" /> &nbsp;Non Active </td> </tr> <tr> <td width="150"><strong>Name</strong></td> <td width="10">:</td> <td colspan="2"> <input type="text" name="name" id="name" value="<?php echo $data_from_ctr['user']['_fullName']; ?>" /> </td> </tr> <tr class="odd"> <td width="150"><strong>Phone Number</strong></td> <td width="10">:</td> <td colspan="2"> <input type="text" name="phone" id="phone" value="<?php echo $data_from_ctr['user']['_noHP']; ?>" /> </td> </tr> <tr> <td width="150"><strong>Access Control</strong></td> <td width="10">:</td> <td colspan="2"> <select id="access" name="access"> <option value="user">User</option> <option value="admin_bank">Admin Bank</option> <option value="admin_client">Admin Client</option> </select> </td> </tr> <tr class="odd level"> <td width="150"><strong>Level</strong></td> <td width="10">:</td> <td colspan="2"> <select id="level" name="level"> <option value="01">Inputer</option> <option value="02">Verificator</option> <option value="03">Authorize 1</option> <option value="04">Authorize 2</option> <option value="05">COPS</option> </select> </td> </tr> <tr style="display: none" class="odd limit"> <td width="150"><strong>Limit Transaction</strong></td> <td width="10">:</td> <td colspan="2"> <input type="text" name="limit" value="<?php echo $data_from_ctr['user']['limit']; ?>" /> </td> </tr> <tr> <td width="150"><strong>Account Access</strong></td> <td width="10">:</td> <td colspan="2"> <select id="acctAccessed" name="acctAccessed[]" multiple="multiple" class="chosen-select" style="width:350px;" data-placeholder="Select account"> <?php foreach ($data_from_ctr['account']['account'] as $data) :?> <option value="<?php echo $data['id'] ?>"><?php echo $data['_giro_OB']; ?></option> <?php endforeach; ?> </select> <input id="chkall" type="checkbox" >Select All</input> </td> </tr> <tr class="odd"> <td width="150">&nbsp;</td> <td width="10">&nbsp;</td> <td colspan="2"><input class="btnsubmitdis" type="submit" value="Save" /></td> </tr> </tbody> </table> </fieldset> <?php include_once APP_TEMPLATE_DIR . 'footer_content.php'; ?> 

This is my controller usermanagement.php

 public function edit(){ Template::setTitle('Edit User Management'); $id_user = (int)Request::post('id_user'); //echo json_encode($iduser); //$iduser = (int)Session::get('idx'); $result = $this->getUserbyId($id_user); $dataresult = json_decode($result, true); if($dataresult === NULL) { echo "<script language = \"javascript\">window.alert(\"\Tidak Ada Data\");"; echo "javascript:history.back();</script>"; return false; } $data = $dataresult; return $data; if(Request::isPost()){ $username = Request::post('username'); $name = Request::post('name'); $level =Request::post('level'); $access =Request::post('access'); $phone = $this->formatPhone($post['phone']); $limit = Request::post('limit'); $email = Request::post('email'); $status_active = Request::post('status_active'); $existing_username = Request::post('existing_username'); //validasi jika username dan comp-code sudah ada if(!array_key_exists('acctAccessed')){ $data_post_rek_acc = array(); }else{ $account_access = Request::post('acctAccessed'); $data_post_rek_acc = array(); foreach ($account_access as $act) { $data_post_rek = array('idRek' => $act, 'userName'=> $username); $data_post_rek_acc[] = $data_post_rek; } } /*$data_update= array('' );*/ $id_user = (int)Request::post('id_user'); $url= "http://localhost:8585/update-usermanagement/$id_user"; $curl = curl_init($url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($curl, CURLOPT_FAILONERROR, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $payload); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: '.strlen($payload) )); $result = curl_exec($ch); return $result; }else{ $user_comp_code = Session::get('pyrCode'); /*API URL */ $url = "http://localhost:8585/add-account/$user_comp_code"; /*init cURL resource */ $curl = curl_init($url); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPGET, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $result = curl_exec ($curl); if ($result === FALSE){ die('Curl failed: ' . curl_error($curl)); } curl_close($curl); //echo $url;echo $result; die; $dataresult = json_decode($result, true); $data['account'] = $dataresult; return $data; } } public function getUserbyId($id_user){ //$id_user = Request::post('id_user'); echo json_encode($id_user); if(!empty($id_user)){ $url="http://localhost:8585/get-user/$id_user"; $curl = curl_init($url); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPGET, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($curl); if($result === FALSE){ die('Curl failed: ' .curl_error($curl)); } curl_close($curl); return $result; } } if(Request::isPost()){ $username = Request::post('username'); $name = Request::post('name'); $level =Request::post('level'); $access =Request::post('access'); $phone = $this->formatPhone($post['phone']); $limit = Request::post('limit'); $email = Request::post('email'); $status_active = Request::post('status_active'); $existing_username = Request::post('existing_username'); //validasi jika username dan comp-code sudah ada if(!array_key_exists('acctAccessed')){ $data_post_rek_acc = array(); }else{ $account_access = Request::post('acctAccessed'); $data_post_rek_acc = array(); foreach ($account_access as $act) { $data_post_rek = array('idRek' => $act, 'userName'=> $username); $data_post_rek_acc[] = $data_post_rek; } } /*$data_update= array('' );*/ $id_user = (int)Request::post('id_user'); $url= "http://localhost:8585/update-usermanagement/$id_user"; $curl = curl_init($url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($curl, CURLOPT_FAILONERROR, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $payload); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: '.strlen($payload) )); $result = curl_exec($ch); return $result; }else{ $user_comp_code = Session::get('pyrCode'); /*API URL */ $url = "http://localhost:8585/add-account/$user_comp_code"; /*init cURL resource */ $curl = curl_init($url); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPGET, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $result = curl_exec ($curl); if ($result === FALSE){ die('Curl failed: ' . curl_error($curl)); } curl_close($curl); //echo $url;echo $result; die; $dataresult = json_decode($result, true); $data['account'] = $dataresult; return $data; } } public function getUserbyId($id_user){ //$id_user = Request::post('id_user'); echo json_encode($id_user); if(!empty($id_user)){ $url="http://localhost:8585/get-user/$id_user"; $curl = curl_init($url); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPGET, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($curl); if($result === FALSE){ die('Curl failed: ' .curl_error($curl)); } curl_close($curl); return $result; } } 

this is edit.php

<?php $ctr = new App_UserManagement_Control_UserManagement(); $ctr ->edit(); ?> 

This is my problem

I have get data id_user from ajax enter image description here

but I can't passing data value id_user to controller and can't redirect page edit_user.php enter image description here

I want to like this if I can passing data value from ajax to controller and can redirect page edit_user.php

enter image description here

This is New problem my data show to alert(data) from ajax, no real page edit_user.php to example: I want to edit username derry_save enter image description here

new error: this is my data id_user, i catch use alert in var id_user enter image description here

this is result from alert(data) jquery enter image description here

1 Answer 1

0

Unfortunately (in your case), ajax is asynchronous, meaning that your click function starts the ajax call and then continues running without paying any attention to what it does (and thus returns nothing at the end).

The success function is called later (when the ajax returns successfully) and is a completely different function, so its returning true has no bearing on your original click function.

All this to say, you will need to use javascript to override the anchor tag's natural behavior (go directly to google.com) and what happens afterward (redirect).

Please see if this can help

$('.delete').click(function(event){ event.preventDefault(); $link = $(this); if(confirm("Are you sure want to delete ?")){ var username = $(this).attr("username"); alert(username); var url = $(this).attr("href"); $.ajax({ type:'post', url: url, data:{username:username}, success: function(data){ alert("Data Berhasil dihapus") window.location.href = $link.attr('href'); }, error:function(err){ alert("Data Gagal Dihapus") } }); } }); 

On edit.php you can do like this

$post_data = $_POST; $ctr = new App_UserManagement_Control_UserManagement(); $ctr->edit($post_data); 

and then on the controller in the edit function you can get these values

public function edit($post_data){ echo '<pre>'; print_r($post_data);die; } 
Sign up to request clarification or add additional context in comments.

13 Comments

for delete no problem, but for edit I can't redirect page and can't passing data id_user to controller @Amit Sharma how can I fix it?
try this way please data:{"id_user":id_user},
yes don't work too, I have new problem again, I can get id_user data and that data can appear on the edit_user.php page, but not on the correct edit_user.php page, but appear in the alert (data), how can it appear on the real edit_user.php page? I have uploaded my new problem above @Amit Sharma
echo $id_user = (int)Request::post('id_user'); die; this line and see if you are getting this in alert or not
i don't get anything? how can i get data for variable from ajax to controller? @Amit Sharma
|