2012-03-10 2 views
3

Я пытаюсь отправить форму, нажав ссылки, не используя кнопку отправки. Каждый элемент формы имеет свою ценность, которая должна быть отправлена ​​при нажатии. Это не работает. Я мог бы использовать JavaScript или jQuery. Пожалуйста, посмотрите на код:Отправить форму, нажав ссылки, не используя кнопку отправки

<head> 
    <style> 
    div { 
    width: 100px; 
    height: 100px; 
    padding: 10px; 
    margin: 10px; 
    background-color: #EEEEEE; 
    } 
</style> 
</head> 
<body> 
<form name="myform" action="test.php" method="post"> 
<div> 
<a href="javascript: submitform()" value='h1'>h1</a><br> 
<a href="javascript: submitform()" value='h2'>h2</a><br> 
<a href="javascript: submitform()" value='h3'>h3</a><br> 
</div> 
</form> 
<script type="text/javascript"> 
function submitform() 
{ 
    document.myform.submit(); 
} 
</script> 
<div> 
<?php 
$form=$_POST['myform']; 
echo $form.' bla<br>'; 
?> 
</div> 
</body> 
</html> 

с orir baruch предложения- работы !!!

<head> 
<script src="jquery.js" type="text/javascript"></script> 
    <style> 
    div { 
    width: 100px; 
    height: 100px; 
    padding: 10px; 
    margin: 10px; 
    background-color: #EEEEEE; 
    } 
</style> 
</head> 
<body> 
<form name="myform" action="test.php" method="post"> 
<input type='hidden' id='hx' name='hx' value=''> 

<div> 
<a href="javascript: submitform('h1')">h1</a><br> 
<a href="javascript: submitform('h2')">h2</a><br> 
<a href="javascript: submitform('h3')">h3</a><br> 
</div> 
</form> 
<script type="text/javascript"> 
function submitform(val) 
{ 
    $("#hx").val(val); 
    document.myform.submit(); 
} 
</script> 
<div> 
<?php 
echo $_POST['hx']; 
?> 
</div> 
</body> 
</html> 

ответ

2

Добавьте следующую строку после <form...>:

<input type='hidden' id='hx' name='hx' value=''> 

Затем измените функцию вызывающему:

<a href="javascript: submitform('h1')">h1</a><br> 

Ваша функция:

<script type="text/javascript"> 
function submitform(val) 
{ 
    $("#hx").val(val); 
    document.myform.submit(); 
} 
</script> 

в РНР :

echo $_POST['hx']; 

Как это работает?

1.You нажмите ссылку

2. Функция изменяет расслоение плотной значение скрытого поля ВХОД

3. Функция отправить расслоение плотной формы

4. $ _ POST относится к скрытое входное значение

+0

не работает :(Можете ли вы показать свои идеи на моем примере? – user985456

+0

Это именно то, что я сделал Вы можете уточнить, что не работает? (Получить ошибки?) –

+0

Я только что опубликовал код с вашими предложениями. Он не возвращает ничего, когда вы нажимаете на ссылку. – user985456

0
<a href="javascript: submitform('h1')">h1</a> 

function submitform(val) 
{ 
    $.post('.', { myform: val }); 
} 
+0

Это не представляет форму. Он делает запрос Ajax. – Quentin

+0

@Quentin - form.submit() и $ .post() делают то же самое: они выполняют POST-действие на веб-сервере. Единственное отличие заключается в том, что второй - это асинхронный почтовый запрос. –

2

Во-первых, я бы не использовать href="javascript:submitForm();", вместо того, чтобы использовать href="#" onclick="submitForm(this)"

Добавить скрытое поле в форму

<input type="hidden" value="" id="hiddenId" /> 

В вашем методе SubmitForm, изменения MyForm к формам [0]. Я считаю, что это будет более дружественным к браузеру. Anywho ... добавьте параметр в свой метод, чтобы вы могли установить значение скрытого поля.

<script type="text/javascript"> 
function submitform(el) 
{ 
    document.getElementById('hiddenId').value = el.value; 
    document.forms[0].submit(el); 
} 
</script> 
+0

Он не будет более удобным для браузера, и он все равно не будет отправлять значения. – Quentin

+0

@Quentin - Да, вы правильно представляете значения. –

+0

Я уже предлагал этот метод. –

0
<!DOCTYPE html> 
<html> 
    <head> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
     <script> 
      $(function() { 
       $("form a").click(function() { 
        var value = $(this).data('value'); 
        $.post('.', { myform: value }); 
        return false; 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <form> 
      <a href="" data-value="h1">h1</a> 
      <a href="" data-value="h2">h2</a> 
      <a href="" data-value="h3">h3</a> 
     </form> 
    </body> 
</html> 
+0

так как я получаю представленное значение? 'code' '; ?> 'Code' – user985456

+0

Подробнее о ** $. Post ** [здесь] (http://api.jquery.com/jQuery.post/). – Anber