массивы в $ .ajax jquery и затем отправляет его на страницу php - PullRequest
0 голосов
/ 12 мая 2011
jQuery(document).ready(function(){
    // Set the data text  
    var dataText = "
    { 
        name: 'John',
        time: '2pm' 
     }";  

    alert(dataText);
    // Create the AJAX request  
    $.ajax({  
        type: "POST",                    // Using the POST method  
        url: "/ajax/analytics/push",      // The file to call  
        data: dataText,                  // Our data to pass  
        success: function() {            // What to do on success  
             alert("Data Loaded: " + dataText);
        }  
    });  
});  
</script>   

Привет, я все еще учусь Ajax.как мы можем выдвинуть массив $ _POST?

1.im, пытаясь сделать что-то вроде

var dataText['name'] = 'Jhon';
var dataText['time] = '2pm';

, затем каким-то образом превратить его в

$_POST['name'] = 'Jhon';
$_POST['time'] = '2pm';

и затем отправить егона URL ..

2. Есть ли способ отладить это?я сейчас пишу

        # somehow doesnt work becouse its not auto refresh when the ajax sends a post
    var_dump($_POST);

        # ok heres how i debug it right now.
    ob_start();
    // write content
    $content = $_POST;
    ob_end_clean();
    file_put_contents('CACHE',$content);

в файл, надеюсь, есть лучшее решение для этого ..

Спасибо, что заглянули. Адам Рамадан

Ответы [ 3 ]

2 голосов
/ 12 мая 2011

Я не совсем уверен, что ты делаешь. Похоже, вы создаете JSON вручную (и не делаете это правильно), а затем передаете его (в виде строковой формы JSON) в свой файл. Похоже, вы ожидаете, что он будет автоматически проанализирован PHP.

Было бы лучше отправить его в виде пар ключ-значение. Вы можете позволить jQuery сделать это за вас, если вы передадите объект. Это не будет сильно отличаться от существующего кода:

var dataText = 
{ 
    name: 'John',
    time: '2pm' 
};  

Обратите внимание, что я удалил двойные кавычки. Это связано прежде всего с тем, что незаконно иметь строку JS, охватывающую более одной строки, без экранирования. Это также потому, что вы хотите, чтобы объект перешел на ваш $.ajax вызов.

Они должны быть доступны как $_POST['name'] и $_POST['time'] сейчас.

0 голосов
/ 12 мая 2011

jQuery(document).ready(function(){
    // Set the data text  
    var dataText = 
    { 
        name: 'John',
        time: '2pm' 
     };  

    alert(dataText);
    // Create the AJAX request  
    $.ajax({  
        type: "POST",                    // Using the POST method  
        url: "/ajax/analytics/push",      // The file to call  
        data: dataText,                  // Our data to pass  
        success: function() {            // What to do on success  
             alert("Data Loaded: " + dataText);
        }  
    });  
});  
 


        # ok heres how i debug it right now.
    ob_start();

     # somehow doesnt work becouse its not auto refresh when the ajax sends a post
    var_dump($_POST);
    $content = ob_get_contents();
    ob_end_clean();
    file_put_contents('CACHE',$content);
0 голосов
/ 12 мая 2011
file_put_contents('CACHE',serialize($content));

или

foreach($_POST as $k => $v) $content .= $k .'='.$v;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...