2016-07-24 52 views
0

该主题中有很多问题,但我是初学者,无法将答案放在一起。获取数组作为AJAX响应

我试图通过ajax更新MySQL数据库的表单,然后取回更新的数据库作为在主页面中使用的数组(无需刷新页面)。

我设法做了第一部分,但没有管理第二部分 - 取回数组。

我的第一部分代码:

HTML:

$("#form").submit(function(){ 

      event.preventDefault(); 

      var form = new FormData(); 
      form.append("id", $('#id').val()); 
      form.append("src", $('#src').val()); 
      form.append("title_en", $('#title_en').val()); 
      form.append("title_he", $('#title_he').val()); 
      form.append("exhibition_en", $('#exhibition_en').val()); 
      form.append("exhibition_he", $('#exhibition_he').val()); 
      form.append("subjects_en", $('#subjects_en').val()); 
      form.append("subjects_he", $('#subjects_he').val()); 
      form.append("keywords_en", $('#keywords_en').val()); 
      form.append("keywords_he", $('#keywords_he').val()); 
      form.append("height", $('#height').val()); 
      form.append("width", $('#width').val()); 
      form.append("sold", $('#sold').val()); 
      var settings = { 
       "async": true, 
       "crossDomain": true, 
       "url": "update.php", 
       "method": "POST", 
       "dataType": 'json', 
       "processData": false, 
       "contentType": false, 
       "mimeType": "multipart/form-data", 
       "data": form 
      } 

      $.ajax(settings).success(function(data) { 

       }); 
      }); 

PHP:

<?php 
    $servername = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $dbname = "chana_goldberg"; 

    // Create connection 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    $conn->set_charset("utf8"); 

    // Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 


    $id = $_POST['id'];  
    $src = $_POST['src']; 
    $title_en = $_POST['title_en']; 
    $title_he = $_POST['title_he']; 
    $exhibition_en = $_POST['exhibition_en']; 
    $exhibition_he = $_POST['exhibition_he']; 
    $subjects_en = $_POST['subjects_en']; 
    $subjects_he = $_POST['subjects_he']; 
    $keywords_en = $_POST['keywords_en']; 
    $keywords_he = $_POST['keywords_he']; 
    $height = $_POST['height']; 
    $width = $_POST['width']; 
    $sold = $_POST['sold']; 

    $sql = "UPDATE paintings_catalog SET title_en='$title_en', title_he='$title_he', exhibition_en='$exhibition_en', exhibition_he='$exhibition_he', subjects_en='$subjects_en', subjects_he='$subjects_he', keywords_en='$keywords_en', keywords_he='$keywords_he', height='$height', width='$width', sold='$sold' WHERE id='$id'"; 
    $conn->query($sql);?> 
+0

你可能需要JSON(JavaScript对象符号),这是PHP支持。请参阅:http://php.net/manual/en/ref.json.php和http://www.w3schools.com/js/js_json.asp –

+0

您的代码易受SQL注入攻击。请使用准备好的语句,而不是通过请求接收的SQL中嵌入字符串。 – trincot

回答

0

就像是:

$sql = "SELECT * FROM paintings_catalog WHERE id=".$id; 
$ret = []; 
if($res = $conn->query($sql)) { 
    $ret = $res->fetch_assoc(); 
} 

echo json_encode($ret);