передача нескольких переменных в аякс

Тема в разделе "PHP", создана пользователем sultan347, 28 май 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. sultan347

    sultan347

    Регистр.:
    25 апр 2009
    Сообщения:
    230
    Симпатии:
    7
    a.php
    PHP:
    if ($l==0)
    {
    $a1=10;$a2=11;$a3=12;
    echo ?????;
    return;
    }
    index.html
    Код:
    <script type="text/javascript">
    	function ch(){
    		$.ajax({
    		   type: "POST",
    		   url: "/a.php",
    		   data: "",
    		   success: function(data1,data2,data3){}
    
    Пробовал перечислять через запятую $a=10;$a=11;$a=12;echo $a1,$a2,$a3;
    Не получается
     
  2. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    поправлю:

    index.html
    должно быть так:
    для вывода в хтмл делаем так:
    PHP:
    if ($l==0

    $a1=10;$a2=11;$a3=12;
    echo 
    "a1=$a1,a2=$a2,a3=$a3";
    return; 
    }  
     
    sultan347 нравится это.
  3. sultan347

    sultan347

    Регистр.:
    25 апр 2009
    Сообщения:
    230
    Симпатии:
    7
    <script type="text/javascript">
    function ch(){
    $.ajax({
    type: "POST",
    url: "/a.php",
    data: "a1=10,a2=11,a3=12", //здесь же не важно что передаем, необязательно же должен совпадать кол-во исходящих и входящих переменных??
    success: function(data1,data2,data3){}







    И еще так можно:
    echo "a1='err',a2='err2',a3='error'";
     
  4. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    data - это то что передается http-запросом в post-данных, а success вроде как функция которая вызывается при успешном запросе и ее переменные вроде как не имеют отношения к post-строке.

    PHP:
    echo "a1='err',a2='err2',a3='error'";
    так можно, если в post-запросе необходимо передать строки, включающие в себя апострофы слева и справа
     
  5. sultan347

    sultan347

    Регистр.:
    25 апр 2009
    Сообщения:
    230
    Симпатии:
    7
    не получается. Одну переменную, пожалуйста, работает. Более одного нет.
    Не работает:
    a.php
    PHP:
    if ($valid_email === false) {echo "'err','Фигня'"; return;}
    index.html
    Код:
    function ch(){
    	$.ajax({
    	type: "POST",
    	url: "/a.php",
    	data: "val=1@m.ru",
    	success: function(msg,msg1){
    		if (msg=="err")	{alert(msg1);}
    Работает:
    a.php
    PHP:
    if ($valid_email === false) {echo "err"; return;}
    index.html
    Код:
    function ch(){
    	$.ajax({
    	type: "POST",
    	url: "/a.php",
    	data: "val=1@m.ru",
    	success: function(msg){
    		if (msg=="err")	{alert("фигня");}
     
  6. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    данные обрабатываются яваскриптом а значит и синтаксис должен быть яваскрипта, если нет тогда придётся парсить полученные данные, как например выше переменные разделены запятой но это простой текст и его надо будет парсить яваскрипту, разделять по запятым, вытаскивать переменные и т.д.

    Другой вариант передавать данные в яваскрипте и пропустить через eval()
    a.php:
    PHP:
    echo "msg1=1;msg2=2;";
    index.html:
    HTML:
    
    ...
        success: function(msg){
            eval(msg);
            alert(msg1+':'+msg2);
        }
    ...
    
    ещё вариант использовать формат json удобно передавать объекты, массивы, тогда
    a.php:
    PHP:
    $array = array ('msg1'=>1,'msg2'=>2);
    echo 
    "data=".json_encode($array);
    index.html:
    HTML:
    
    ...
        success: function(msg){
            eval(msg);
            alert(data.msg1+':'+data.msg2);
        }
    ...
    
     
    sultan347 нравится это.
Статус темы:
Закрыта.