Новое в JQuery: как я могу отправить форму отдельно в JQuery? - PullRequest
0 голосов
/ 17 июля 2011

Это стандартный отправитель формы в jQuery:

<script>
$(document).ready(function(){  
    $("form#submit").submit(function() {  
        var fname = $('#fname').attr('value');  
        var lname = $('#lname').attr('value');  
        $.ajax({  
            type: "POST",  
            url: "report.php",  
            data: "fname="+ fname +"& lname="+ lname,  
            success: function(){  
                $('form#submit').hide(function(){ 
                    $('div.success').show();
                });    
            }
        });  

        return false;  
    });
}); 
</script>

а вот формы:

<form id="submit" name="submit">
<input id="fname" name="fname" size="20" type="hidden" value="aword">  <font class='black'>report:</font>
<input id="lname" name="lname" size="40" type="text">  
<button id="send">send</button>
</form>

<form id="submittwo" name="submittwo">
<input id="fname" name="fname" size="20" type="hidden" value="anoterword">  <font class='black'>report:</font>
<input id="lname" name="lname" size="40" type="text">  
<button id="send">send</button>
</form>

report.php:

<?php
$fname = htmlspecialchars(trim($_POST['fname']));  
$lname = htmlspecialchars(trim($_POST['lname']));  
$myFile = "reports.txt";
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "\n".$fname."\n";
fwrite($fh, $stringData);
$stringData = $lname."\n";
fwrite($fh, $stringData);
fwrite($fh, $theData);
fclose($fh);
?>

В PHP будет больше циклов. Что я хочу сделать, это представить их отдельно. Любая идея, как или вы можете сказать мне, где я могу найти ответ?

Ответы [ 3 ]

1 голос
/ 18 июля 2011

если я хорошо понял вопрос, это может помочь

$('form').submit(function(e){
    e.preventDefault(); // prevent the default behaviour of the form submit

    var fname = $("#fname",this).val(); // get the fname of the submitted form
    var lname = $("#lname",this).val(); // get the lname of the submitted form
    $.ajax({  
            type: "POST",  
            url: "report.php",  
            data: "fname="+ fname +"& lname="+ lname,  
            success: function(){  
                $('form#submit').hide(function(){
                    $('div.success').show();
                });    
            }
        });  
    });

вот скрипка http://jsfiddle.net/fG8T3/

0 голосов
/ 18 июля 2011

Не очень ясно, где у вас возникла проблема, но если вы пытаетесь отправить их, не покидая текущей страницы, вы можете искать плагин jQuery Form . Это немного облегчает отправку форм и отображение результатов, поэтому вы не будете делать это вручную, как в коде, который вы опубликовали.

0 голосов
/ 18 июля 2011

Вы можете просто использовать одну форму, но изменить названия ваших полей

<form id="submit" name="submit">
   <input id="fname" name="fname[]" size="20" type="hidden" value="aword">  
   <input id="lname" name="lname[]" size="40" type="text">

   <input id="fname" name="fname[]" size="20" type="hidden" value="anoterword"> 
   <input id="lname" name="lname[]" size="40" type="text">
   <input type="submit" value="send" />
</form> 

Теперь вы можете перебирать данные GET в виде массива:

foreach ($_GET['fname'] as $index => $value)
{
   echo $_GET['fname'][$index].' '.$_GET['lname'][$index];
}

Примечание: идентификаторы должны быть уникальными.

...