2013-06-02 2 views
0

Доброе утро всем,SQL Query onsubmit - изменить существующие результаты

У меня есть страница, которая выполняет соединение по умолчанию к базе данных, поиск и петельные вывод данных на страницу, применяя шаблон для каждого результата в таблице, используя этот код:

<?php 

$result = mysqli_query($con,"SELECT * FROM XXX WHERE Type='ABCD';"); 

while($row = mysqli_fetch_array($result)) 
{ 
    include('includes/template-1234.php'); 
} 
mysqli_close($con); 

?> 

на той же странице у меня есть простое окно HTML поиска:

<div id="srch-form"> 
<form> 
    <input name="srch-box" type="text" id="srch-box" size="45" onClick="this.value='';" onFocus="this.select()" onBlur="this.value=!this.value?'Enter Product Name or SKU#':this.value;" value="Enter Product Name or SKU#"> 
    <input type="submit" name="srch-btn" id="srch-btn" value="Search"> 
    </form> 
</div> 

Потому что я только учусь PHP - как я установить это так, что действие по умолчанию s пока это не произойдет при вводе страницы, но - если что-то в поисковом окне, то данные на текущей странице заменяются результатами представления? Наверное, я смущаюсь из-за того, что, поскольку я уже присвоил значение (-ы) для результата $ result, чтобы получить вывод по умолчанию, если значение $ result изменено формой поиска, PHP автоматически обновляет страницу, когда изменяется значение $ result? - Извините, если это простая вещь.

+0

Добрый вечер (здесь его не утром). Это может быть легко, но я действительно не понимаю ваш вопрос. Чего вы пытаетесь достичь? Пример: «1. Когда пользователь щелкает, я хочу установить X в db, 2. Когда пользователь посещает страницу, которую я хочу ... и т. Д.« Что вы хотите сделать? – bestprogrammerintheworld

+0

Я не пытаюсь установить значение в БД, просто запросите БД на основе значения, представленного в окне поиска, и обновите результаты на странице, в которой они сейчас находятся. - Что-то вроде: On-Page-Load DB запроса для записей со значением X и их отображения. - В форме-Submit, Query DB для записей со значением Y и результатов обновления, отображаемых на текущей странице. – DMSJax

ответ

0

Во-первых, вам нужно будет добавить действие (какой файл для отправки при его отправке) и предпочтительно тип метода в вашем теге формы. Вы также должны включать в себя стоимость $ ProductName (учитывая с серверной стороны PHP) внутри вашего HTML (посмотреть на значение атрибута)

ли что-то вроде этого:

HTML-формы: (Examplefile: yourhtmlform.php)

Затем в PHP-файле значение получить от конкретного элемента, как это:

<?php 
//File querydb.php (example filename) 

//Form is submitted and srch-box is set (only set when form is submitted) 
if(isset($_POST['srch-box'])) { 
    $type = $_POST['srch-box']; //Get value of input-element 
} 
else { 
    $type = 'kingkong'; //Default type to search 
} 

$prepareQuery = mysqli_prepare($dbConnectionLink,"SELECT * FROM XXX WHERE Type=:type"); 
//...code to fetch results.. 
//You get a productName (or SKU) from db 

if (isset($result['product_name'])) { 
    $productName = $result['product_name']; //or whatever your column is called 
} 
else { 
    $productName = ''; 
} 

include('yourhtmlform.php'); //Observe that it must be php to echo out value of $productName in this included file 

Я заметил, что вы не использовали подготовленный отчет. Смотрите более подробную информацию о подготовленных заявлений здесь: http://www.php.net/manual/en/mysqli.prepare.php(используйте их!)

Я надеюсь, что это поможет вам как-то :-)

+0

Спасибо за помощь, я не смог заставить ее работать точно так же, как и у вас (мое собственное недоразумение, я уверен) - но я заставляю его работать с некоторыми вариантами того, что вы предоставили, поэтому в любом случае это было достаточно в правильном направлении для меня, чтобы разрешить это. Благодаря! – DMSJax

+0

Мой код на самом деле не был полностью полным, он был как указатель в правильном направлении. Рад, что это помогло! :-) – bestprogrammerintheworld

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