#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Feb 2013
    Posts
    5
    Rep Power
    0

    Updating hidden field with javascript for posting


    Hi guys,

    im trying to send hidden field value's using ajax so that I dont need to refresh the page. I do have this functionality working but one of my variables requires to be updated every time that I press the "next page" link (offset +15)

    I found some javascript code which apparently should be able to achieve this. The javascript variable does update (itterates +15 on link click - verified by doing an alert(document.jax.offset.value) but the hidden field value does not pass the updated value when posted.

    any idea's guys?

    My hidden form code

    Code:
    echo '<form id="jax" name="jax" method="post">';
    echo '<input type="hidden" id="player" value="'.$player.'"></input>';
    echo '<input type="hidden" id="link" value="'.$link.'"></input>'; 
    echo '<input type="hidden" id="genre" value="'.$genre.'"></input>';
    echo '<input type="hidden" id="offset" name="offset" value="0"></input>';
    echo '<a href="#" id="back" onclick="backpage()" >Back</a>';
    echo '<a href="#" id="forward" onclick="addpage()">Forward</a><<br>';
    echo '</form>';
    javascript functions to add 15 & subract 15 to the offset hidden field ( back + add links)

    Code:
    <script type="text/javascript"> 
    addpage = function(){ document.jax.offset.value = document.jax.offset.value*1 + 15 ; 
    return true;}
    </script>
    
    <script type="text/javascript"> 
    backpage = function(){ document.jax.offset.value = document.jax.offset.value*1 - 15 ; 
    return true;}
    </script>
    my javascript file which passes the variables


    Code:
    jQuery(document).ready(function() {
        var link = jQuery("#link").val();
        var player = jQuery("#player").val();
        var offset = jQuery("#offset").val();		
        jQuery("#forward").click(function(){
    
            jQuery.ajax({
                type: 'POST',
                url: '/wordpress/wp-admin/admin-ajax.php',
                data: {
                    action: 'sfunction',
                    link: link,
    		player: player,
    		offset: offset,
    		
                },
                success: function(data, textStatus, XMLHttpRequest){
                    jQuery("#div").html('');
                    jQuery("#div").append(data);
                },
                error: function(MLHttpRequest, textStatus, errorThrown){
                    alert(errorThrown);
                }
            });
        });
    });
    any idea's guys? as I said all the variables do pass over but the "offset" value is always passed over as "0" even though the local javascript variables does indeed increment when the "addpage" link is clicked
  2. #2
  3. A Not To Shabby Code Smurf
    Devshed Beginner (1000 - 1499 posts)

    Join Date
    Aug 2008
    Posts
    1,187
    Rep Power
    184
    Try putting your input value variables inside the jQuery("#forward") function. It looks like those variables are just outside the scope of that function. I maybe wrong, but test it and see.

    Code:
    jQuery(document).ready(function() {	
    	
        jQuery("#forward").click(function(){
    
        var link = jQuery("#link").val();
        var player = jQuery("#player").val();
        var offset = jQuery("#offset").val();
    
    // proceeding function below...
  4. #3
  5. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Feb 2013
    Posts
    5
    Rep Power
    0
    do you mean like this?

    Code:
    <script type="text/javascript"> 
    var offset = jQuery("#offset").val();
    addpage = function(){ document.jax.offset.value = document.jax.offset.value*1 + 15 ; 
    return true;}
    </script>
    
    <script type="text/javascript"> 
    var offset = jQuery("#offset").val();
    backpage = function(){ document.jax.offset.value = document.jax.offset.value*1 - 15 ; 
    return true;}
    </script>
    I tried that and it never worked
  6. #4
  7. A Not To Shabby Code Smurf
    Devshed Beginner (1000 - 1499 posts)

    Join Date
    Aug 2008
    Posts
    1,187
    Rep Power
    184
    Originally Posted by scottish_jason
    do you mean like this?

    Code:
    <script type="text/javascript"> 
    var offset = jQuery("#offset").val();
    addpage = function(){ document.jax.offset.value = document.jax.offset.value*1 + 15 ; 
    return true;}
    </script>
    
    <script type="text/javascript"> 
    var offset = jQuery("#offset").val();
    backpage = function(){ document.jax.offset.value = document.jax.offset.value*1 - 15 ; 
    return true;}
    </script>
    I tried that and it never worked
    Uhhh... no; like this:

    Code:
    jQuery(document).ready(function() {
    		
        jQuery("#forward").click(function(){
    
        var link = jQuery("#link").val();
        var player = jQuery("#player").val();
        var offset = jQuery("#offset").val();
    
            jQuery.ajax({
                type: 'POST',
                url: '/wordpress/wp-admin/admin-ajax.php',
                data: {
                    action: 'sfunction',
                    link: link,
    		player: player,
    		offset: offset,
    		
                },
                success: function(data, textStatus, XMLHttpRequest){
                    jQuery("#div").html('');
                    jQuery("#div").append(data);
                },
                error: function(MLHttpRequest, textStatus, errorThrown){
                    alert(errorThrown);
                }
            });
        });
    });
  8. #5
  9. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Feb 2013
    Posts
    5
    Rep Power
    0
    Originally Posted by web_loone08
    Uhhh... no; like this:

    Code:
    jQuery(document).ready(function() {
    		
        jQuery("#forward").click(function(){
    
        var link = jQuery("#link").val();
        var player = jQuery("#player").val();
        var offset = jQuery("#offset").val();
    
            jQuery.ajax({
                type: 'POST',
                url: '/wordpress/wp-admin/admin-ajax.php',
                data: {
                    action: 'sfunction',
                    link: link,
    		player: player,
    		offset: offset,
    		
                },
                success: function(data, textStatus, XMLHttpRequest){
                    jQuery("#div").html('');
                    jQuery("#div").append(data);
                },
                error: function(MLHttpRequest, textStatus, errorThrown){
                    alert(errorThrown);
                }
            });
        });
    });
    thanks for the help, but unfortunately that never worked. As i was saying, all of the values pass over fine, its just that the updated value (from the addpage/backpage function) does not pass over even though the local javascript variable does indeed update.
  10. #6
  11. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Feb 2013
    Posts
    5
    Rep Power
    0
    Originally Posted by scottish_jason
    thanks for the help, but unfortunately that never worked. As i was saying, all of the values pass over fine, its just that the updated value (from the addpage/backpage function) does not pass over even though the local javascript variable does indeed update.
    sorry never mind, I got it

IMN logo majestic logo threadwatch logo seochat tools logo