2014-01-23 6 views
0

В моем index.php у меня есть кнопка обновления, как показано ниже.javascript variable to php script

<form action="update.php" method="post" > 
    <button type="submit">Update</button> 
</form> 

Я определил функцию javascript, чтобы переопределить действие формы по умолчанию. Функция javascript следующая.

<script type="text/javascript"> 
$(document).ready(function() { 
$('form').submit(function(e) { 
    e.preventDefault(); 
    alert("HI"); 
    $.ajax({ 
     type: 'post', 
     url: 'update.php', 
     data: { 
      source1: "some text", 
     }, 
     success: function(data) { 
      console.log(data); 
     } 
    }); 
}); 
}); 
</script> 

После того, как я нажму кнопку «Обновить», я получаю предупреждение. Однако я не перенаправлен на страницу update.php, как и ожидалось. Я пытаюсь отправить некоторые значения в запрос ajax, который можно использовать для обработки на странице update.php.

+1

You не будет перенаправлен, потому что у вас нет сценария перенаправления. Вы не можете использовать перенаправление PHP в вызове AJAX. И почему вы используете AJAX, если хотите, чтобы его перенаправляли? – putvande

+1

Как вы получаете доступ к данным в 'update.php'? Как этот вопрос отличается от любого из ** связанных вопросов? ---> – naththedeveloper

+1

Вы не будете перенаправлены с помощью ajax, это точка ajax. – superphonic

ответ

1

Вы не перенаправлены, потому что переадресация PHP не влияет на браузер при запуске как вызов AJAX. Вам необходимо указать JavaScript перенаправления в функции success:

$.ajax({ 
    type: 'post', 
    url: 'update.php', 
    data: { 
     source1: "some text", 
    }, 
    success: function(data) { 
     document.location.href = 'update.php' 
    } 
}); 

Однако, я не верю, что это то, что вы хотите. Вы, кажется, хотите добавить новые данные формы о представлении формы, в которой она могла бы быть лучше, чтобы предотвратить поведение по умолчанию, добавить какие-либо дополнительные данные со скрытыми полями ввода, а затем повторно отправить форму:

$(function() 
    { 

    $('form').submit(function (e) 
    { 

     if ($(this).is(':not([data-submit="true"])')) 
     { 

     $('form').append('<input type="hidden" name="foo" value="bar">') 

     $('form').data('submit', 'true').submit() 

     e.preventDefault() 

     return false 

     } 

    } 
    ) 

    } 
) 

</script> 
+0

Мне нужно вызвать функцию update.php при успешном завершении. Теперь я могу вызвать update.php из ajax. Тем не менее, я обращаюсь к переменной javascript, используя POST в файле update.php. Он не отображается в моем файле update.php. –

+0

Чтобы данные отображались в переменной '$ _POST', она должна быть отправлена ​​с формой. Отсюда мой пример добавления скрытого поля ввода, содержащего значение. – MichaelRushton