2014-10-31 3 views
0

Хорошо, я запутался с php, javascript и html и не знаю, что делать. При исследовании в Интернете я обнаружил, что js - клиентская сторона, а php - серверная. когда php-файл запускается в браузере, он преобразует все в html и загружается страница. Теперь позвольте мне рассказать вам, что я делаю.Замените переменную php на ввод текстового поля

У меня есть PHP-файл, который даст мне некоторые статистические данные из конкретного URL (в образце я просто показывает URL)

<? 
$url="www.example.com"; 
echo "URL = " .$url; 
?> 

Результат URL = www.example.com
Приведенный выше код повторяет URL, который www.example.com , Я добавил текстовое поле в этот код, который я считаю, является JavaScript + HTML

<script> 
function myFunction() { 
$url=myurl.value; 
} 
</script> 

<input type="text" name="myurl" id="myurl"> 
<input onclick="myFunction()" type="submit" name="btnurl" id="btnurl" value="Submit"> 
<br><br> 

<? 
$url="www.example.com"; 
echo "URL = " .$url; 
?> 

Здесь результат такой же. только разница в том, что у него есть текстовое поле и кнопка над результатом.
Когда я ввожу другой url в текстовое поле и нажимаю submit, он ничего не делает, потому что страница уже загружена. Я хочу заменить результат www.example.com на тот, который введен в текстовое поле без изменения файла .php. Всегда всегда будет URL-адрес по умолчанию в файле .php. всякий раз, когда файл открывается в браузере, статистика по умолчанию будет отображаться ... только когда пользователь вводит новый URL-адрес и передает клики, статистика должна измениться.

Как я могу это достичь? Я занимаюсь этим, так как более двух часов и не уверен, как это сделать. Пожалуйста, помогите мне .... Спасибо.

EDIT Могу ли я иметь два файла .php? один для пользователя, чтобы ввести url и отправить, а другой - получить введенный url и повторить его? Если да, то как? Если я пойму эту логику, я смогу начать то, что я делаю.

+0

Вы смешиваете PHP и JavaScript. Если вы хотите отправить данные в файл PHP, посмотрите 'XMLHttpRequest'. – ntzm

+0

Вот что я подумал. Я не отправляю данные в файл. Я не знаю, как объяснить. когда страница будет загружена, она покажет статистику URL-адреса и на той же странице, если я изменю URL-адрес, статистика должна измениться на той же странице без перенаправления. статистика здесь означала бы только повторение содержимого переменной $ url. – Sabha

+0

Да, у вас может быть 2 php-файла. –

ответ

1

natzim является правильным, если вы желаете, чтобы написать URL обратно в файл PHP. Если вы используете javascript для изменения действия формы, он будет отправляться на другую страницу.

//javascript 
function myFunction() { 
    //this should change the page that loads after submit. 
    //If you want to go to a new page that the user enters, leave this code in... 
    //If not, remove it 
    document.getElementsByTagName("form")[0].action = document.getElementById("myUrl").value; 
} 

Предполагается, что у вас есть тег формы (который вам нужно будет отправить на страницу). Также я не уверен, что этот код будет запущен, если вы используете кнопку submit, а не кнопку.Если вы использовали кнопку вместо того, чтобы вы могли бы добавить это в код выше, чтобы отправить форму:

//This would be part of your myFunction if you used a button instead of a submit input 
document.getElementsByTagName("form")[0].submit(); 

согласно мой комментарий -

этот код является старый PHP:

<? 
$url="www.example.com"; 
echo "URL = " .$url; 
?> 

и это предложенный мной php:

<?php 
$url=isset($_POST['myurl']) ? $_POST['myurl'] : 'www.example.com'; 
echo "URL = " .$url; 
?> 

это проверит вход myurl, который был отправлен на сервер, и установите значение $ url на его значение, если оно существовало, тогда переменная $ url будет отображаться на странице под входами.

Этот код предполагается, что вы используете метод POST, а не метод GET, когда ваша форма была отправлена.

** EDIT: **

Для уточнения - вот ваша страница с изменениями, я предлагаю. (Пожалуйста, проигнорируйте javascript выше, как вам кажется, он вам не понадобится):

<form action='www.example.com' method='post'> 

<input type="text" name="myurl" id="myurl"> 
<input type="submit" name="btnurl" id="btnurl" value="Submit"> 
<br><br> 

<?php 
$url=isset($_POST['myurl']) ? $_POST['myurl'] : 'www.example.com'; 
echo "URL = " .$url; 
?> 

</form> 
+0

Я пробовал это, он очищает исходный эхо-адрес и адресную строку. Я http://example.com/test.php?myurl=ddddd&btnurl=Submit, где так как мне нужен только что введенный url, который будет отображаться в текстовом поле, а адресная строка должна иметь только http://example.com/test.php – Sabha

+0

Я понимаю, что вы говорите, но все еще немного смущен. Возможно ли, чтобы вы обновили ваш ответ с двумя кодами 1.php и 2.php. Это даст мне лучшее понимание. Спасибо, я смущен с комментарием «не хочу уходить от этой страницы» – Sabha

+0

ok, я собираюсь попробовать это. все еще не понимали, что вы имели в виду, когда говорили: «Если вы не хотите удаляться от этой страницы, вы можете просто удалить строку, которая устанавливает действие формы, и она перезагрузит одну и ту же страницу». Я не вижу этого в вашем переработанном коде Спасибо – Sabha

3

Я думаю, что вы пытаетесь сделать больше с помощью js-функции, но синтаксически это сочетание js и php. Он должен выглядеть как этот

function myFunction() { 
    var url = document.getElementById('myurl').value; 
} 

Хотя это на самом деле не делать ничего другого, а затем присвоить содержимое текстового поля переменной.

EDIT

<script> 
    function myFunction() { 
     document.getElementById('url').innerHTML = document.getElementById('myurl').value; 
    } 
</script> 

<input type="text" name="myurl" id="myurl"> 
<input onclick="myFunction()" type="submit" name="btnurl" id="btnurl" value="Submit"> 
<br><br> 
<? $url = "www.example.com"; ?> 
URL = <span id="url"><?= $url; ?></span> 
+0

Я пробовал это, но, как вы сказали, ничего не делает. Я хочу, чтобы начальное эхо отображалось при начальной загрузке страницы, подлежащей замене, на тот, который был введен в текстовое поле. – Sabha

+0

Затем вам нужно поместить этот url в span (или какой-то элемент html) с идентификатором и изменить его. php будет этим ' '. js будет 'document.getElementById ('url'). innerHTML = url'. Это будет второй строкой вашей функции 'myFunction()' – Jacob

+0

. Я обновил свой ответ, чтобы включить мои комментарии выше, хотя это все равно не делает ничего, кроме изменения текста на странице – Jacob

Смежные вопросы