2014-03-28 3 views
0

온라인 상점을 만들고 3 가지 양식 (두 가지 다른 PHP 파일 사용)이 있습니다. 첫 번째 양식 - 사용자가 제목을 입력 할 때 기준으로 사용하는 텍스트 & 제품 설명 두 번째 양식 - 신제품의 이미지 업로드 세 번째 양식 - 레코드를 추가 할 데이터베이스에서 카테고리 (테이블) 선택 주어진 테이블AJAX를 사용하여 하나의 제출 버튼으로 3 개의 양식 제출

AJAX를 사용하여 어떻게 할 수 있습니까? php와 AJAX의 새로운 기능으로 코드 수정 방법을 알려주세요.

1 형태 (1 형에 의해 사용)

<form action="insert.php" method="post" name="form1" enctype="multipart/form-data"> 
<div> 
    <label for="title">Title: </label><input type="text" name="title"/> 
</div> 
<div> 
    <label for="description">Desc: </label><input type="text" name="description"/> 
</div> 
<div> 
    <label for="price">Price: </label><input type="text" name="price" /> 
</div> 
<input type="hidden" name="submit" value="Submit"> 
</form> 

insert.php

<?php 
    $con=mysqli_connect('localhost','root', '',"onlineshop"); 
    // Check connection 
    if (mysqli_connect_errno()) 
    { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 


    $sql="INSERT INTO mens (title, description, price) 
    VALUES 
    ('$_POST[title]','$_POST[description]','$_POST[price]')"; 

    if (!mysqli_query($con,$sql)) 
    { 
     die('Error: ' . mysqli_error($con)); 
    } 
    echo "1 record added"; 

    mysqli_close($con); 
?> 

2 형태

<script type="text/javascript" src="../cms/scripts/jquery.min.js"></script> 
<script type="text/javascript" src="../cms/scripts/jquery.form.js"></script> 

<script type="text/javascript" > 
$(document).ready(function() {   
    $('#photoimg').live('change', function(){ 
     $("#preview").html(''); 
     $("#preview").html('<img src="loader.gif" alt="Uploading"/>'); 
     $("#imageform").ajaxForm({ 
        target: '#preview' 
     }).submit(); 

    }); 
}); 
</script> 

<style> 

body 
{ 
    font-family:arial; 
} 

.preview 
{ 
    width:160px; 
    border:solid 2px #dedede; 
    padding:10px; 
} 

#preview 
{ 
    color:#cc0000; 
    font-size:10px 
} 

</style> 
<body bgcolor="#ffdd55">  
<font face=Arial size=3 color="#880088"> 
<form id="imageform" method="post" enctype="multipart/form-data" action='ajaximage.php' > 
<small>Upload your image <input type="file" name="photoimg" id="photoimg" /></small> 
</form> 
<div id='preview'> 
</div> 

3 형태

<?php 
    include_once 'dropdown.php'; 
?> 
<small>Choose category:</small> 
<br> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 
    <select name="Tables" id="ddTables" name="form3"> 
<?php 

    echo $tables; 

?> 
    </select> 
    <input type="hidden" id="tableSubmit" value="Submit"/> 
</form> 
</div> 

<!-- Submit 3 forms together--> 
<script> 
$('#form1_submit_button').click(function(){ 
    $('#form1 #imageform #form3').submit(); 
}); 
</script> 
(3 형태에서 사용)

dropdown.php

<?php 
    $dbname = 'onlineshop'; 

    if (!mysql_connect('localhost', 'root', '')) { 
     echo 'Could not connect to mysql'; 
     exit; 
    } 

    $sql = "SHOW TABLES FROM $dbname"; 
    $result = mysql_query($sql); 

    if (!$result) { 
     echo "No tables exist! \n"; 
     echo 'MySQL Error: ' . mysql_error(); 
     exit; 
    } 
    $tables = ''; 
    while ($row = mysql_fetch_row($result)) { 


    $tables .="<option value='$row[0]'>$row[0]</option>"; 

    } 

    mysql_free_result($result); 
?> 

답변

0

내가 제안하는 것은 코드를 재구성하는 것입니다. 3 개의 별도 페이지에 게시하려고하지 마십시오. m 1, 아마도 시도 중 하나를 예를 들어 3

로 분리 확실히 하나에 단계를 결합, 또는 :

(3로 분리) :

페이지 한 것은, 당신은의 기본 정보를 입력 제품이 제출되어 데이터베이스에 삽입되면 데이터베이스에서 카테고리를 선택하는 특정 "제품 ID"또는 무엇인가가 들어있는 숨겨진 POST'd 필드를 통해 페이지/2 단계로 넘어갑니다. 거기에서 제출하면 데이터베이스에 삽입되고 이미지를 업로드하는 페이지/3 단계로 이동합니다. 이것을 제출하면 끝났습니다!

- 장점 : 개별 페이지가 작아서 어느 하나의 페이지를 더 쉽게 조정할 수 있습니다.

- 단점 : 3 페이지 모두에 영향을주는 사항을 변경하기 어렵고 사용자의 인터넷 속도가 느리면 단일 제품을 만드는 데 시간이 오래 걸릴 수 있습니다.


(결합) :

모든 정보를 한 페이지에 입력 - 카테고리 선택, 기본 제품 정보 및 파일 업로드. 해당 페이지를 제출하면 모든 정보가 하나씩 처리됩니다.

- 장점 : 큰 정보를 변경하는 것이 쉬우므로 모든 정보가 즉시로드/제출되므로 데이터베이스에 불완전한 데이터가 일부만 남지는 않습니다.

- 단점 : 한 페이지에 많은 정보를 기입하면 많은 양의 코드로 변경하기가 어려울 수 있습니다.

+0

아래의 결합 방법에 관심이 있습니다. 이것이 주요 아이디어였습니다. 내가 좀 새로운 사람이기 때문에 그 일을 도울 수 있니? – cmario

+0

기본적으로 원하는 것은 (텍스트 입력, 체크 박스, 라디오 버튼 등) 필요한 모든 양식 요소를 모아 하나의 페이지에 넣는 것입니다. 이러한 제출물을 처리하는 PHP 페이지에서 사용자가 가지고있는 입력 목록을 내려 가서 각각을 처리하도록하십시오. – Helpful

+0

그래서 내가 다른 모든 PHP 파일을 하나에 넣고 그 PHP 파일을 사용하는 하나의 양식을 만들까요? 그것이 효과가있을 것인가, 아니면 모든 것을 혼란스럽게 할 것인가? – cmario

관련 문제