2017-01-15 9 views
1

フォームに2つのボタンがあります。 1つはレコードを挿入し、もう1つはレコードを挿入して2ページに移動します。私のPHP知識はあまり良くありませんので、おそらく簡単な間違いです。ここに私のコードです - 事前に感謝!PHP - レコードを挿入して別のページに移動する2つのボタン

<?php 
$editFormAction = $_SERVER['PHP_SELF']; 
if (isset($_SERVER['QUERY_STRING'])) { 
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); 
} 
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) { 
$insertSQL = sprintf("INSERT INTO content (title) VALUES (%s)", 
        GetSQLValueString($_POST['title'], "text")); 

mysql_select_db($database_sql, $sql); 
$Result1 = mysql_query($insertSQL, $sql) or die(mysql_error()); 

$insertGoTo = "page1.php"; 
if (isset($_SERVER['QUERY_STRING'])) { 
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; 
$insertGoTo .= $_SERVER['QUERY_STRING']; 
} 
header(sprintf("Location: %s", $insertGoTo)); 
} 




$editFormAction2 = $_SERVER['PHP_SELF']; 
if (isset($_SERVER['QUERY_STRING'])) { 
$editFormAction2 .= "?" . htmlentities($_SERVER['QUERY_STRING']); 
} 
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) { 
$insertSQL = sprintf("INSERT INTO content (title) VALUES (%s)", 
        GetSQLValueString($_POST['title'], "text")); 

mysql_select_db($database_sql, $sql); 
$Result1 = mysql_query($insertSQL, $sql) or die(mysql_error()); 

$insertGoTo = "page2.php"; 
if (isset($_SERVER['QUERY_STRING'])) { 
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; 
$insertGoTo .= $_SERVER['QUERY_STRING']; 
} 
header(sprintf("Location: %s", $insertGoTo)); 
} 
?> 

<html> 
<body> 
<form name="form" method="POST" id="form"> 
<input name="title" type="text" placeholder="Page Title"/> 
<input type="submit" class="submit" value="Next Step" onClick="this.form.action='<?php echo $editFormAction; ?>';  this.form.submit()"> 
<input type="submit" class="save" value="Save & Exit" onClick="this.form.action='<?php echo $editFormAction2 ; ?>';  this.form.submit()"> 
</form> 
</body> 
</html> 
+1

PDOまたはMySQLiをを使用する代わりに、 'mysqlの_ *()'拡張子を使用しないでください。どうして? [note](http://php.net/manual/en/function.mysql-connect.php)赤いボックスは、現在約4.5年前から存在しています。 – Xorifelse

+1

@ Xorifelseが言ったことと、あなたの$ editFromActionと$ editFormAction2は両方とも "_ _SERVER ['PHP_SELF']を指し示しているので、同じPHPファイルにフォームを送信しています。あなたのフォームに別の隠れた入力フィールドを追加し、onClickがそのフィールドの値を操作し、その入力フィールドに基づいてリダイレクトを行うことです。 (すべてのユーザー入力を検証することを忘れないでください、常に:) – flynorc

答えて

0
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<html> 
<body> 
<div style="float: left;"> 
<form action="page1.php" name="form" method="POST" id="form"> 
    <input name="title" id="title" type="text" placeholder="Page Title"/> 
    <input type="submit" class="submit" value="Next Step"> 

</form> 
</div> 
<div style="float: left;"> 
<form action="page2.php" name="form" method="POST" id="form"> 
    <input name="title2" id="title2" type="hidden" placeholder="Page Title"/> 
    <input type="submit" class="save" value="Save & Exit"> 
</form> 
</div> 
</body> 
</html> 

<script> 
    $(document).ready(function() { 
     $("#title2").val($("#title").val()); 
    }); 
    $(document).change(function() { 
     $("#title2").val($("#title").val()); 
    }); 
</script> 
関連する問題