2011-12-22 5 views
0

Я хочу обновить одну и ту же страницу и отобразить введенное значение в текстовом поле на той же странице после нажатия ссылки или кнопки.как отправить значение текстового поля без отправки формы в php?

У меня есть следующий код:

<?php 
echo '<h3>Fee Payment</h3>'; 

echo "<form id='myFormId' name='myFormName'>"; 
echo " <input type='text' name='myTextField'>"; 
echo "<a href='{$_SERVER['PHP_SELF']}?student_no=myTextField'> Search Student</a>"; 


if (!(isset($_GET[student_no]))) 
{ 
    echo "No Student is available."; 
} 
else 
{ 
    $student_no = $_GET['student_no']; 
    echo "Student NO:".$studen_no; 
} 
?> 

Пожалуйста, руководство меня, как достичь цели и Whats ошибка моего кода.

ответ

0
  1. Вы используете ссылку для отправки формы, но вы должны использовать кнопку отправки. <input type="submit" value="Search student" />
  2. Вы не закрыли тег <form>.
  3. Вы используете $_GET[student_no], который заставит PHP искать определение student_no. Поскольку это строка, выражайте ее как единицу. $_GET['student_no'] лучше.
+0

Что не так с якорем для отправки? – Scott

0

Почему вы не можете отправить форму? Вы хотите иметь ссылку для поиска вместо кнопки? Вы можете настроить ссылку для отправки формы с помощью яваскрипт и изменить действие формы для GET, как это:

<?php 
echo '<h3>Fee Payment</h3>'; 

echo "<form id='myFormId' name='myFormName' 
    action='{$_SERVER['PHP_SELF']}' method='GET'>"; 
echo " <input type='text' name='student_no'>"; 
echo "<a href='javscript:document.forms.myFormName.submit()'> 
    Search Student</a>"; 

... 
1
<?php 
echo '<h3>Fee Payment</h3>'; 

if(isset($_POST['myTextField'])) 
$value=$_POST['myTextField']; 
else 
$value=''; 

echo "<form id='myFormId' name='myFormName' method='post'>"; 
echo " <input type='text' name='myTextField' value='$value'>"; 
echo "<a href='{$_SERVER['PHP_SELF']}?student_no=myTextField'> Search Student</a>"; 

Кроме того, необходимо представить кнопку в форме, а форма закрывающий тег.

0

Что вы хотите, это AJAX. Я просто предоставляю вам пример того, как вы можете продолжить, используя jQuery, но вы также можете использовать любую другую библиотеку/структуру или любым другим способом. Вы можете проверить this article также для получения более подробных сведений о юзабилити.

На главной странице: -

<?php 
echo '<h3>Fee Payment</h3>'; 

echo "<form id='myFormId' name='myFormName'>"; 
echo "<input type='text' name='myTextField' id='myTextField' />"; 
echo '<a href="javascript:void()" id="inline_submit_a">Search Student</a>'; 
echo "</form>"; 
?> 

<script type="text/javascript"> 
$('#inline_submit_a').click(function(evt){ 
    $.ajax({ 
     type: "GET", 
     url: "handler.php", 
     data: {text:$('#myTextField').val()} 
    }); 

    evt.preventDefault(); 
    return false; 
}); 
</script> 

В "handler.php" страницы: -

<?php 
if (!(isset($_GET[student_no]))) 
{ 
    echo "No Student is available."; 
} 
else 
{ 
    $student_no = $_GET['student_no']; 
    echo "Student NO:".$student_no; 
} 
?> 

Вы можете написать всю логику, связанную с базой данных в "handler.php" страницы.

Надеюсь, это поможет.

+0

Увидев название, я также подумал, что он хочет Ajax, но после прочтения описания «Я хочу обновить ту же страницу» было очевидно, что он хочет публиковать на той же странице. Кроме того, я не думаю, что OP действительно справится с Ajax. –

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