2012-06-03 2 views
1

У меня есть две форм в моем index.php и пытаются заставить их подчиниться и POST своих данных seperatlyнесколько форм с различными действиями с помощью кнопок отправки

Форма 1

echo '<form action="process.php?type=news" method="post">'; 
echo '<table cellspacing="0"><tr><th>'; 
echo 'Add News to News Feed'; 
echo '</th></tr><tr><td>'; 
echo 'Title:<br /><input name="newstitle" type="text" id="add" style="height:16px;width:525px;" size="80" maxlength="186" /><br />'; 
echo 'Main Body Text:<br /><textarea name="newsfeed" id="add" style="width:525px;height:78px;" maxlength="2000" ></textarea>'; 
echo '<input style="float:right;margin-top:5px;" id="button" type="submit" value="Submit" />'; 
echo '</td></tr></table></from>'; 

И Форма 2

echo '<form action="process.php?type=suggest" method="post">'; 
echo '<table cellspacing="0"><tr><th>'; 
echo 'Suggest Additions to the Intranet'; 
echo '</th></tr><tr><td>'; 
echo '<textarea name="suggest" id="add" style="width:330px;height:60px;" maxlength="800" ></textarea>'; 
echo '<input style="float:right;margin-top:5px;" id="button" type="submit" value="Submit" />'; 
echo '</td></tr></table></from>'; 

Я хочу, чтобы они, как размещать и сделать действие после нажатия на кнопку отправки, но в настоящее время вторая форма представляет первое действие формы

Как я могу это исправить ???

EDIT: Кроме того, я использую .php как для страницы индекса и процесса затем использовать его, чтобы повторить формы на странице

Также здесь данные process.php

$type=$_REQUEST['type']; 
$suggest=$_POST['suggest']; 
$newstitle=$_POST['newstitle']; 
$news=mysql_real_escape_string($_POST['newsfeed']); 

if ($type == "news") 
{ 
    $sql=mysql_query("SELECT * FROM newsfeed WHERE title = ('$newstitle')"); 
    $number_of_rows = mysql_num_rows($sql); 
    if ($number_of_rows > 0) 
    { 
    echo 'This Title is Already Taken'; 
    } 
    else 
    { 
    $sql="INSERT INTO newsfeed (title, news) VALUES ('$newstitle','$news')";  
    if (!mysql_query($sql,$con)) 
    { 
     die('Error: ' . mysql_error()); 
    } 
    header('Location: index.php'); 
    exit; 
    } 
} 
elseif ($type == "suggest") 
{ 
    $sql="INSERT INTO suggestions VALUES ('$suggest')"; 
    if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    } 
    header('Location: index.php'); 
    exit; 
} 
+0

Почему вы разбиваете его на столько эха? – Jared

+0

@Jared Это облегчает мне просмотр, где биты таблицы предназначены для редактирования. –

+0

Вы все еще можете разбить строку в середине строки, не добавляя новое эхо. – Jared

ответ

2

Может это что вы не закрываете форму с </form>, но с </from>, поэтому код второй формы на самом деле все еще внутри первая форма, так как теги никогда не закрываются?

+0

Да, заканчивался не –

0

попытка давая представить по щелчку для каждой формы так и в его кнопки отправки HTML поставить это:

onclick="document.forms["myform1"].submit();" и формы 2 поставил onclick="document.forms["myform2"].submit();"

0

Я не уверен, что именно вы хотели бы достичь , так что мои предположения, 1. Ваша форма отправляется ошибочно, например, вторая форма представляет данные первой формы или 2. Вы хотели бы, чтобы оба отправили 1 за другой.

FOR 1:

Сделайте это.

<form id="form1" action="process.php" method="POST"> 
<input type="hidden" name="type" value="news"> 
.... 
</form> 

Обратите внимание на написание /форма не из/

<form id="form2" action="process.php" method="POST"> 
<input type="hidden" name="type" value="suggest"> 
.... 
</form> 

Обратите внимание на написание /форма не из/

+0

Ive исправил это, написано не также это означает, что мне нужно изменить способ получения моего типа $ в process.php, но поскольку я также использую ссылки для перехода к процессу. php 'Something' это победит цель –

0

Некоторые указатели:

Вместо вторя так, много раз, повторять один раз достаточно! Помните, что эхо замедляет ваш скрипт. Кроме того, я бы не передать тип как $ _GET, пост всегда безопаснее для форм, вы можете использовать скрытое поле, чтобы добавить тип:

<?php 
echo ' 
<form action="process.php" method="post"> 
<input type="hidden" name="type" value="news"> 
... 
... 
</form>';//Not </from> 
?> 

Затем с PHP часть использовать случай переключения вместо если вернулись на Родину , будет проще добавлять функции, а затем разделять с другим ifelse, плюс блок по умолчанию может использоваться для чего-либо, что не совпадает с последним в инструкции if else.

<?php 
$type = $_POST['type']; 

switch($type){ 
    case "news": 
     ... 
     break; 
    case "suggest": 
     ... 
     break; 
    default: 
     //default if different type or no type is set 
     break; 
} 
?> 

Также перейдите к PDO или подготовленным функциям mysqli_ для вашего материала mySQL, что безопаснее.

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