Как отправлять и получать переменные с помощью jquery и AJAX? - PullRequest
0 голосов
/ 20 мая 2011

Допустим, это моя часть кода jquery:

$.ajaxSetup ({
    cache: false
});

load() functions
var loadUrl = "load.php";
$("#load_basic").click(function(){
    $("#result").load(loadUrl +  "?language=php&version=5");
});

});    

, а это «load.php»

<?php $_GET['language'] .= "cool";  $_GET['version']+=2; ?>

Как вернуть обработанный язык и версиюvars обратно в мой #result div?

Извините, если я делаю это неправильно.Довольно удобно в php и jquery, но ajax немного смущает меня, и я не нашел ни одного учебника, который бы по-настоящему щелкнул.

Я знаю, что могу повторить эти переменные, и это вернет содержимое load.phpв мой див ... но это кажется неуклюжим, и я сомневаюсь, что именно так люди на самом деле делают это ..

Ответы [ 3 ]

1 голос
/ 20 мая 2011

1001 * JQuery *

$("#load_basic").click(function(){
    $.get(loadUrl +  "?language=php&version=5", function(data){
           var obj = eval(data)
           $("#result").html(obj.language + " " + obj.version)      
    });
});

PHP

<?php $_GET['language'] .= "cool";  $_GET['version']+=2; 
echo "{\"language\" : \"".$_GET['language']."\",\"version\" : \"".$_GET['version']."\"" ?>

не проверено и не пуленепробиваемо, но концепция здесь. Верните что-нибудь в свой PHP, что вы можете прочитать обратно (я выбираю JSON)

1 голос
/ 20 мая 2011

"Что, если я повторяю две или три переменные в php, и я хочу, чтобы они были разделены и отображались в разных div-ах .."

Я ASP, а не PHP, но я думаю, что принцип тот же.

У меня есть моя запрашивающая страница:


    <script type="text/javascript">
     $(document).ready(function(){  
$("#list").change(onSelectChange);  
});

    function onSelectChange(){  
var selected = $("#list option:selected").val();
var bob = $("#list option:selected").text();

if (selected.length > 0) {
    $.post("twopart.asp", { thing: selected, bob: bob }, function(data) {
        var dataraw= data;
        var dataarray = (dataraw).split("~~~");
        var outone= dataarray["0"];
        var outtwo= dataarray["1"];
        var outthree= dataarray["2"];
        $("#output1").html(outone);
        $("#output2").html(outtwo);
        $("#output3").html(outthree);
    });
}
}
</script>

и это на моей странице обработки:


response.write bunch of stuff and ~~~
response.write bunch of stuff and ~~~
response.write more stuff

Извините, форматирование отключено - все еще учусь, как это сделать.

В любом случае, «эхо-страница» перекликается со своими тремя тильдами, застрявшими там. Затем я анализирую возврат на тильды и пишу разные места.

Надеюсь, это полезно.

JSON-ответ Grooveek, вероятно, лучше.

1 голос
/ 20 мая 2011

попробуйте

$.ajax({
  url:YOUR_URL,
  dataType:'json',
  type:'POST',
  data:'&var1=value1&var2=value2',
  beforeSend:function(){
      //
  },
  success:function(response){
      //complete
      $('#container').html(response.result + ' ' + response.other);
  }
});

в вашем php

$var1 = $_POST['var1'];
//your proccess
$result = array(
   'result' => 'ok',
   'other' => 'value'
);
echo json_encode($result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...