2014-03-10 5 views
1

У меня такой код.Forloop и Javascript submit in PHP

Согласно моему предыдущему вопросу, я НЕ ХОЧУ отправить любые значения в URL-адрес и перейти со скрытым полем.

В приведенном ниже коде, когда я отправляю форму, мне удалось получить значения сообщений на следующей странице только для первого значения строки (сначала во время записи цикла).

Почему? Когда я проверяю его с помощью firebug, я смог увидеть скрытые значения для всех записей.

Другими словами, только первая запись отправляется на следующую страницу, а не последовательные записи.

Если ниже код выглядит сумасшедшим, кто-то может помочь мне таким образом, что я не хочу, чтобы передать значения в URL или где-нибудь в браузере/веб-формы

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title>Books</title> 
    <script type="text/javascript"> 
      function test() { 
       document.forms.testform.submit(); 
      } 
    </script> 
</head> 

<body> 

    <?php 
     mysql_connect("localhost","root","password"); 
     mysql_select_db("books"); 
     $result = mysql_query("SELECT B_Code,Author_Name FROM books"); 
     while($row = mysql_fetch_array($result)) { 
    ?> 

    <form action ="post.php" id="testform" method="post"> 
     <input type="hidden" name="name" value="<?php echo $row['B_Code']; ?>" /> 
     <input type="hidden" name="id" value="<?php echo $row['Author_Name']; ?>" /> 
    </form> 

    <a href="#" onclick="test()"><?php echo $row['Author_Name']; ?></a> 

    <?php } ?> 

</body> 
</html> 

Спасибо, Kimz

+0

Используя те же имена для всех скрытых полей ?? И у вас есть несколько форм. Следовательно, только те записи формы, которую вы нажимаете, будут отправлены. – rakhi4110

+0

Да Да;) Вы правы. То же имя и идентификатор для всех записей в скрытом поле – user3350885

+0

FYI - даже если я изменяю имя формы для обоих значений, я не могу получить значения на следующей странице. – user3350885

ответ

1

Попробуйте это решение ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
     <html xmlns="http://www.w3.org/1999/xhtml"> 
     <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
     <title>Books</title> 
     <script type="text/javascript"> 
     function test(name,id) 
     { 
     document.getElementById("name").value = name; 
     document.getElementById("id").value = id; 
     document.forms.testform.submit(); 
     } 
     </script> 
     </head> 
     <body> 
     <form action ="post.php" id="testform" method="post"> 
     <?php 
     mysql_connect("localhost","root","password"); 
     mysql_select_db("books"); 
     $result = mysql_query("SELECT B_Code,Author_Name FROM books"); 
     while($row = mysql_fetch_array($result)) { 
     ?> 
     <a href="#" onclick="test('<?php echo $row['B_Code']; ?','<?php echo $row['Author_Name']; ?>')"><?php echo $row['Author_Name']; ?></a> 
     <?php } ?> 
     <input type="hidden" name="name" value="" id="name"/> 
     <input type="hidden" name="id" value="" id="id"/> 
     </form> 
     </body> 
     </html> 
+0

Идеальный мужчина !!! Работает как шарм !!! Благодарю. Это то, что я ожидаю – user3350885

0

почему вам нужно отправить форму, используя javascript, и вы можете отправить форму без javascript. use Пожалуйста, удалите тег и используйте кнопку типа submit.