Ajax alert inside function not works - ajax

First alert : alert('<?php echo t_lang('M_FRM_PLEASE_WAIT_WHILE_FILE_OR_IMAGE_IS_BEING_UPLOADED_._IF_FILE_SIZE_IS_BIG_IT_CAN_TAKE_SOME_TIME_._PLEASE_DO_NOT_CLOSE_TAB');?>'); does not work unless I put second alert out of function call: alert();
$('input[name="btn_submit"]').click(function second(){
var step = <?php echo $_REQUEST['step']?>;
var dealid= <?php echo $_GET['edit']?>;
var ur="imagecheck.php?dealid="+dealid;
if (step == 1) {
$.ajax({
url: ur,
type: "GET",
header: {'Access-Control-Allow-Origin': '*'},
success: function(y) {
if(y=='true'){
alert('<?php echo t_lang('M_FRM_PLEASE_WAIT_WHILE_FILE_OR_IMAGE_IS_BEING_UPLOADED_._IF_FILE_SIZE_IS_BIG_IT_CAN_TAKE_SOME_TIME_._PLEASE_DO_NOT_CLOSE_TAB');?>');
} else {
alert(dealid);
}
}
});
alert(); // if I don't add this first alert is not showed up.
}
});
I tried almost everything but still can not understand why first alert relies on second alert. Any help would be highly appreciated.
I am adding the codes below which is all about ajax in my file.
<script type="text/javascript">
$(document).ready(function(){
$('input[name="btn_submit"]').click(function first(){
var com_id=<?php echo $_SESSION['logged_user']['company_id']?>;
var co_type=$('#co_type').val();
var ur="check_no_of_deals.php?company_id="+com_id;
if(co_type==0){
$.ajax({
url: ur,
type: "GET",
header: {'Access-Control-Allow-Origin': '*'},
success: function(t) {
if(t == 'true'){
} else {
alert('<?php echo t_lang('M_FRM_YOU_HAVE_ALREADY_ADDED_DEAL_TODAY');?>');
window.location.href='http://deals.az/merchant/company-deals.php';
}
}
});
}
});
//bizim kod basladi
$('input[name="btn_submit"]').click(function second(){
var step = <?php echo $_REQUEST['step']?>;
var dealid= <?php echo $_GET['edit']?>;
var ur="imagecheck.php?dealid="+dealid;
if (step == 1) {
$.ajax({
url: ur,
type: "GET",
header: {'Access-Control-Allow-Origin': '*'},
success: function(t)(y) => {
if(t=='true'){
alert('<?php echo t_lang('M_FRM_PLEASE_WAIT_WHILE_FILE_OR_IMAGE_IS_BEING_UPLOADED_._IF_FILE_SIZE_IS_BIG_IT_CAN_TAKE_SOME_TIME_._PLEASE_DO_NOT_CLOSE_TAB');?>');
} else {
alert(dealid);
}
}
});
// alert();
}
});
//bizim kod bitti
});
</script>

try replacing to arrow function
$.ajax({
...
success: (y) => {
if(y=='true'){
...
}
}
...
})
the difference between an arrow function and a regular function is by their this
so when you pass the regular function it becomes part of the ajax call or the Jquery object.
but the arrow function stays where you see it.

Related

Passing third data field using Ajax is not working

I'm using a rating script that passes values to the database using Ajax, everything works up until I decided to pass the variable Make. I'm not sure why its not working. I have also tried using data: 'postID='+postID+'&ratingNum='+ratingNum +'&Make='+Make,
But that is also not working.
$(function() {
$('.rate input').on('click', function(){
var postID = <?php echo $postData['id']; ?>;
var ratingNum = $(this).val();
var Make = <?php echo $postData['Make']; ?>;
$.ajax({
type: 'POST',
url: 'https://techhum.com/rating.php',
data: {
'postID': postID,
'ratingNum': ratingNum ,
'Make': Make
},
// data: 'postID='+postID+'&ratingNum='+ratingNum +'&Make='+Make,
dataType: 'json',
success : function(resp) {
if(resp.status == 1){
$('#avgrat').text(resp.data.average_rating);
$('#totalrat').text(resp.data.rating_num);
alert('Thanks! You have rated '+ratingNum+' to "<?php echo $postData['Name']; ?>"');
}else if(resp.status == 2){
$('#show_notification').html('<div class="alert alert-success alert-dismissible">×You have already rated this product.</div>');
$('#subject').val('');
$('#comment').val('');
$('#error_div').html('');
}
$( ".rate input" ).each(function() {
if($(this).val() <= parseInt(resp.data.average_rating)){
$(this).attr('checked', 'checked');
}else{
$(this).prop( "checked", false );
}
});
}
});
});
});

Ajax: I need to pass the value from php script file to html file

I need to get the value from the PHP script file to HTML in ajax. Need to append the response condition wise.
Here is my code:
$(document).ready(function(){
var collectionarrayValues = <?php echo json_encode($subcatId); ?>;
$.each(collectionarrayValues, function(index, value) {
var ajaxurl = '<?php echo $block->getBaseUrl(); ?>ajax/index/shopallnew/collection/'+value;
$.ajax({
//async: false,
url:ajaxurl,
type:'POST',
dataType:'HTML',
beforeSend: function () { showLoader(); },
success:function(response){
if (response != '')
{
hideLoader();
jQuery(".appendCollection").removeClass("load");
jQuery('.appendCollection').append(response);
}
}
});
});
});
I want to add the condition like this
if(data ==test1){
jQuery('.appendCollection1').append(response);
}else if(data ==test2){
jQuery('.appendCollection2').append(response);
}
Test1 and test2 will come from PHP file
Thanks

How to use submit form with ajax

I already make login form and success, but when I'm trying add ajax, it fails, does anyone know a solution? this is my code:
$(document).ready(function()
{
$("#formLogin").submit(function(e)
{
$.ajax({
url:"<?php echo site_url('login'); ?>",
type:"POST",
data:$("#formLogin").serialize()
})
.done(function(response)
{
if(response =='gagal')
{
$(".alert.alert-danger").show('fast');
}
else
{
window.location.href = "http://localhost/epeds_web/";
}
});
e.preventDefault():
});
});

Make an Ajax request in Yii 2.0?

Right, i only want a very simple ajax request to get this working. im new with yii 2.0 framework you see.
in my view index.php:
function sendFirstCategory(){
var test = "this is an ajax test";
$.ajax({
url: '<?php echo \Yii::$app->getUrlManager()->createUrl('cases/ajax') ?>',
type: 'POST',
data: { test: test },
success: function(data) {
alert(data);
}
});
}
Now when i call this i assume that it should go to my CasesController to an action called actionAjax.
public function actionAjax()
{
if(isset($_POST['test'])){
$test = "Ajax Worked!";
}else{
$test = "Ajax failed";
}
return $test;
}
EDIT::
Ok great, so this works up to here. I get back the alert that pops up with the new value for $test. However i want to be able to access this value in php as ultimately i will be accessing data from a database and ill be wanting to query and do various other things.
So how do i now use this variable in php instead of just the pop up alert()?
Here is how you can access the post data in controller:
public function actionAjax()
{
if(isset(Yii::$app->request->post('test'))){
$test = "Ajax Worked!";
// do your query stuff here
}else{
$test = "Ajax failed";
// do your query stuff here
}
// return Json
return \yii\helpers\Json::encode($test);
}
//Controller file code
public function actionAjax()
{
$data = Yii::$app->request->post('test');
if (isset($data)) {
$test = "Ajax Worked!";
} else {
$test = "Ajax failed";
}
return \yii\helpers\Json::encode($test);
}
//_form.php code
<script>
$(document).ready(function () {
$("#mausers-user_email").focusout(function () {
sendFirstCategory();
});
});
function sendFirstCategory() {
var test = "this is an ajax test";
$.ajax({
type: "POST",
url: "<?php echo Yii::$app->getUrlManager()->createUrl('cases/ajax') ; ?>",
data: {test: test},
success: function (test) {
alert(test);
},
error: function (exception) {
alert(exception);
}
})
;
}
</script>
You can include js this way in your view file:
$script = <<< JS
$('#el').on('click', function(e) {
sendFirstCategory();
});
JS;
$this->registerJs($script, $position);
// where $position can be View::POS_READY (the default),
// or View::POS_HEAD, View::POS_BEGIN, View::POS_END
function sendFirstCategory(){
var test = "this is an ajax test";
$.ajax({
url: "<?php echo \Yii::$app->getUrlManager()->createUrl('cases/ajax') ?>",
data: {test: test},
success: function(data) {
alert(data)
}
});
}

Yii: get result for ajax request

I have a anchor;
When I click on it, the following code executes:
<script>
$('.viewcnp').click(function() {
event.preventDefault();
var r = prompt("Enter your password:");
if (r) {
$.ajax({
type: "POST",
url: '<?php echo Yii::app()->baseUrl; ?>' + '/index.php/admin/user/viewCnp/id/' + '<?php echo $model->id; ?>',
data: {'password': r},
success: function(data) {
$('.cnpdecrypted').text(data);
},
dataType: 'text'
});
}
});
</script>
this code makes a request to this action:
public function actionViewCnp($id) {
$model = User::model()->findByPk($id);
if ($model) {
return '{"data":"' . Utils::decrypt_cnp($model->cnp) . '"}';
}
else
return false;
}
If in the action I echo the cnp decripted, its there, but i can't set the value because I don't receive it on success.
You should simply use echo instead of return :
if ($model) {
echo Utils::decrypt_cnp($model->cnp);
}

Resources