2015-06-15 3 views
3

Я пытался получить простой ajax-тест, но безуспешно. Я пытаюсь передать переменную ($ add1) из PHP в JS, затем пусть JS вычислит сумму и вернет ее обратно в переменную PHP через $ _POST и ECHO в html.ajax test не работает

index.php:

<?php 

echo "<script type='text/javascript' src='script.js'></script>"; 
$add1 = 3; 
echo "<script>sum($add1)</script>"; 
$sum = $_POST['variable']; 

echo $sum; 

?> 

script.js:

function sum(param) { 
    var sum = 3; 
    sum = 3 + param; 

    $.ajax({ 
     type: 'POST', 
     url: 'index.php', 
     data: { 
      'variable': sum 
     }, 
    }); 
} 

По какой-то причине этот код не работает. Любая помощь приветствуется.

+0

Так что это проблема? –

+1

Вы видите ошибку в 'console'? – Tushar

+2

Вы смешиваете код переднего конца с внутренним кодом –

ответ

1

I want the php file to pass the $add1 to the Javascript and then i want the javascript to return the var sum back to the php and the php to echo the $sum from the $POST.

$sum из $_POST фактически повторил, но не показывается в HTML-страницы, но обрабатываются как ответ назад к Ajax.

Вы должны добавить success функции в Ajax закрытии

$.ajax({ 
     type: 'POST', 
     url: 'index.php', 
     data: { 
      'variable': sum 
     }, 
     success: function (data){ 
      document.write(data); 
     } 
    }); 

Вы увидите ответ шоу в странице.

PHP:

if (isset($_POST['variable'])) { 
    $sum = some_futher_function($_POST['variable']); 
    echo $sum; 
} else { 
    echo "<script type='text/javascript' src='script.js'></script>"; 
    $add1 = 3; 
    echo "<script>sum({$add1})</script>"; 

} 
function some_futher_function($param){ 
    //do some thing 
    return $return; 
} 
+0

и как я могу ответить эхом в php ?? – d4ny3l

+0

Какова ваша цель? просто показать на странице или сделать дополнительный функциональный дескриптор в PHP? –

+0

Ну, я хочу сделать дополнительный функциональный дескриптор в php (некоторые вычисления в php, что не проблема, потому что $ sum заполняет значение из JS), и в конце я хочу, чтобы эхо его в php отображалось в html. – d4ny3l

1

Включите это на свою страницу перед своим script.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 

PHP код

<?php 

if ($_POST['variable']) { // If ajax request only 
    $sum = $_POST['variable'] + $add1; 
    echo $sum; 
} else { // Loading in the browser 
    $add1 = 3; 
    echo '<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script><script type="text/javascript" src="script.js"></script>'; 

    echo "<script>sum(".$add1.")</script>"; 
} 
?> 

Javascript

function sum(param) { 
    var sum = 3; 
    sum = 3 + param; 

    $.ajax({ 
     type: 'POST', 
     url: 'index.php', 
     data: { 
      'variable': sum 
     }, 
     success: function(result) { 
      alert(result) 
     }, 
     error: function(e) { 
      console.log(e); 
     } 
    }); 
} 
+0

спасибо, работал как шарм. Не могли бы вы объяснить мне, что вы делаете в if()? 'if ($ _POST ['variable']) { $ sum = $ _POST ['variable'] + $ add1; echo $ sum; ' – d4ny3l

+0

@ d4ny3l Добавлены комментарии inline в коде – Tushar

+0

Он по-прежнему не работает, как его должно было делать. Я хочу, чтобы файл php передал $ add1 в Javascript, а затем я хочу, чтобы javascript возвращал сумму var обратно в php и php для эхо-суммы $ sum из $ POST. – d4ny3l