Я пытаюсь использовать jQuery $ .ajax (), но я столкнулся с некоторыми трудностями.
Вот поле текстового поля, которое я хочу использовать для POST:
<input name="url" class="url" type="text" >
Вот код:
$.ajax({ type: "post", url: "file.php", data: $(this).serialize(), success: function(data) { ...............
Теперь это файл.php:
<?php if( $_REQUEST['url'] ) { $url = $_REQUEST['url']; $url = file_get_contents($url); // I would need now to return something here but not sure how??!! } ?>
Теперь, мой вопрос: как вернуть переменные в этот код PHP и использовать их в моем коде выше, я имею в виду в успешной части $ .ajax (). Также, если я хочу выполнить некоторые дополнительные вещи в переменной $ url, как это сделать? Как вернуть их? : /
Вы просто печатаете / эхом свое значение «return».
file.php
<?php if( $_REQUEST['url'] ) { $url = $_REQUEST['url']; $url = file_get_contents($url); // I would need now to return something here but not sure how??!! echo "something"; } ?>
Тогда в вашем JS:
$.ajax({ type: "post", url: "file.php", data: $(this).serialize(), success: function(data) { console.log(data); // "something" } });
Как примечание. Ваш скрипт выглядит так, как будто он принимает любой URL-адрес и извлекает его. Можно так злоупотреблять сценариями. Убедитесь, что вы это знаете.
Если вы хотите вернуть некоторые переменные / поля, лучшим способом будет эхо-строка JSON. Вот небольшой пример:
Код PHP:
<?php if( $_REQUEST['url'] ) { $url = $_REQUEST['url']; $url = file_get_contents($url); $result['var1'] = 'something'; $result['var2'] = 500; echo json_encode($result); } ?>
Код JS:
$.ajax({ type: "post", url: "file.php", data: $(this).serialize(), dataType: 'json', // maybe not needed? I do not know if jQuery autodetects it success: function(data) { // here you can use data.var1 and data.var2 to read the fields } });