0

I am trying to pass a value of an input item to php when loading the php file using ajax_load. this is that I have so far but it's not working.

html and jquery:

<tr>
    <td></td>
    <td>
        <button class="grey">Test Settings</button></td>
</tr>

<tr>
    <td></td>
    <td><div class="font-size-15 color-semi-black" id="result"></div></td>
</tr>
<input type="hidden" name="control" value="1"/>

<!--Test Settings-->
{literal}
    <script>
        $.ajaxSetup({
            cache: false
        });
        var ajax_load = "<img src='images/loaders/small-loader.gif' alt='loading...' />";
        var value = $("input[name='control']").val();
        //  load() functions
        var loadUrl = "demo/test_settings.php?val=" + value;
        $("button").click(function() {
            $("#result").html(ajax_load).load(loadUrl);
        });

    </script>
{/literal}    

php:

if ($val == '1'){

//process code here. 

}

It's not passing the value of the input. any suggestions?

4
  • No need to. He can capture it trough query string Commented May 28, 2014 at 12:04
  • there are numbers of ajax jquery tutorials. try to search in Google Commented May 28, 2014 at 12:04
  • it would be very helpful if you could just post the actual content of your test_settings.php file too. Otherwise, we assume that your $val is set as: $val = $_GET['val']. Commented May 28, 2014 at 12:19
  • thank you all for commenting. the reason I did not post the content of the php is because it is about 200 lines of coding which is not related to this. but same suggestion as below works great. Commented May 28, 2014 at 12:27

3 Answers 3

2

your request is going with GET like this:-

/demo/test_settings.php?val=1&_=1401278450924

so you need to get your values by $_GET on test_settings.php like

if ($_GET['val'] == '1'){
Sign up to request clarification or add additional context in comments.

1 Comment

thank you for your suggestion. had a few problem with ?val=1&_=1401278450924 but I changed to .php?val=1"; and that works
1

In your $.load pass data to it as a parameter.

$("button").click(function(){
    $("#result").html(ajax_load).load(loadUrl , {
         val : ...
    });
});

In your php file:

if (isset($_REQUEST["val"]) && $_REQUEST["val"] == 1) {
    ...
}

If you pass an object, it is passed as POST, otherwise it is passed as GET.

6 Comments

And what do you think load() does?
Edited it. Somehow forgot you can actually pass parameters to load, my bad.
This is not the problem, he is already passing the value in the query string. The problem is how he retrieves it in php
Yeah, but passing the values like that is a better way to deal with it.
guys, I was able to use suggestions from here and do this. test_connection.php?val=1"; php: ($_GET['val'] == '1'){ and it works fine
|
0
if (count($_GET) && $_GET['val'] == '1'){
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.