2016-12-06 9 views
0

Привет, ребята У меня в настоящее время есть веб-сайт, который позволяет пользователям искать веб-сайт, я хотел бы сохранить эти условия поиска и количество раз, которое каждый раз искали в базе данных. С этой целью я создал таблицу с 2-мя поисками столбцов, которая является varchar (30), и значение, которое является int (30), установлено как уникальное, так что термины для дизайна экземпляра не заполняют две строки, однако, когда я запускаю программу ничего сохраняется в базе данных, мне было интересно, сможет ли кто-нибудь из вас помочь.Передача данных из javascript с помощью ajax и сохранение его в базе данных

Javascript

function performSearch() { 
    var searchURL = "http://api.lmiforall.org.uk/api/v1/soc/search?q="; 
    var searchTerms = $('#searchterm').val(); 
    var searchReady = searchTerms.toLowerCase(); 
    $.ajax({ 
        type: "POST", 
        url: 'findfavourites.php', 
        data: {searchReady : searchReady}, 
        success: function(data) 
        { 
         alert("success!"); 
        } 
       }); 
    $('#soctable tbody').empty(); 
    $.getJSON(searchURL + searchReady, function(results) { 
     results.forEach(function (result) { 
     var row = $("<tr></tr>"); 
     var codeCell = $("<td></td>"); 
     var titleCell = $("<td></td>"); 
     var descriptionCell = $("<td></td>"); 
     var qualificationsCell = $("<td></td>"); 
     var tasksCell = $("<td></td>"); 
     codeCell.html(result.soc); 
     titleCell.html(result.title); 
     descriptionCell.html(result.description); 
     qualificationsCell.html(result.qualifications); 
     tasksCell.html(result.tasks); 
     row.append(codeCell); 
     row.append(titleCell); 
     row.append(descriptionCell); 
     row.append(qualificationsCell); 
     row.append(tasksCell); 
     $('#soctable tbody').append(row); 
    }); 
    }); 

} 


$(function() { 
    // when the page is loaded 
    $('#dosearch').on('click', performSearch); 
}); 

PHP

<?php 

    include 'includes/dbConnection.php'; 
    if(isset($_POST['searchReady'])) 
    { 
      $uid = $_POST['searchReady']; 
     $value='1'; 
    $query=$conn->prepare("INSERT INTO favourites VALUES  ('$uid','$value') ON DUPLICATE KEY UPDATE value = VALUES(value + 1"); 
    $query->execute(); 
    $conn = null; 
} 
?> 

любая помощь будет оценена заранее спасибо.

редактировать

@PHPglue

им, что вы просили страницы в getjson возвращает результаты в случае так вот HTML-страница

<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<meta name="viewport" content="width=device-width, intial-scale=1"> 
<title>Homepage</title> 
<link href="styleSheet.css" rel="stylesheet" type="text/css"> 
<script type="text/javascript" src="jquery-3.1.1.js"></script> 
<script type="text/javascript" src="soc.js"></script> 
</head> 

<body> 
<div id="page"> 
<nav> 
    <ul> 
    <li><a href="index.html">Home Page</a></li> 
    <li><a href="careers.html">Careers</a> 
    <ul> 
    <li><a href="#">Careers and Apprenticeships</a></li> 
    </ul> 
    </li> 
    </ul> 
</nav> 
<header> 
    <h1><u>Careers and Apprenticeships</u></h1> 
</header> 
<div class="container"> 
<div class="row"> 
<div class="col-sm-12"> 
<input class="form control" type="text" id="searchterm" placeholder="Put your search term here..."> 
<button class="btn btn-primary" id="dosearch">Search!</button> 
</div> 
</div> 
</div> 
<div class="container"> 
<div class="row"> 
<div class="col-sm-12"> 
<table class="table table-striped" id="soctable"> 
<thead> 
<tr> 
<th>SOC Code</th> 
<th>Job Title</th> 
<th>Description</th> 
<th>Qualifications</th> 
<th>Tasks</th> 
</tr> 
</thead> 
<tbody> 
</tbody> 
</table> 
</div> 
</div> 
</div> 
</div> 
<footer> 
</footer> 
</body> 
</html> 

EDIT 2

Привет всем Я обнаружил, что ajax работает, и t проблема в том, что ON ON DUPLICATE KEY UPDATE может кто-нибудь, возможно, проверить синтаксис и сказать мне, если вы видите какие-либо проблемы. Как я сказал выше, я бы хотел, чтобы это значение обновлялось до 2 при поиске одного и того же термина и так далее.

+0

AJAX вызовов, которые зависят от другого AJAX вызовов, должны быть вложено в зависимой AJAX. – PHPglue

+0

Я не понимаю, что вы подразумеваете под этим, вы могли бы объяснить? –

+0

Вы проверили выход $ uid? Это происходит на сервере? –

ответ

0

Попробуйте внесение изменений в SQL строки:

$query=$conn->prepare("INSERT INTO favourites 
    VALUES ('$uid','$value') 
    ON DUPLICATE KEY UPDATE value = value + 1"); 

Надеется, что это помогает :)

+1

Привет, это работало флагом спасибо –

+0

Замечательно слушать @Bob – flauntster