Моя первоначальная цель состояла в том, чтобы заставить файл php выполняться при нажатии кнопки. Я использовал AJAX. Когда был виден javascript, он работал.
Однако я попытался переключить javascript на собственный файл .js и включить его в заголовок. Это больше не работает. Я сбит с толку.
код модели:
public function insert_build($user_id)
{
$query = "INSERT INTO user_structure (str_id, user_id) VALUES ('7', '$user_id')";
mysql_query($query) or die ('Error updating database');
}
Интересно отметить, что когда я включаю $ user_id в качестве значения, он полностью отменяет шаблон заголовка. Как в, это просто не загружается. Когда я заменяю $ user_id на статическое значение (то есть '7'), это работает без проблем.
Это мой код просмотра:
<div id="structures">
<h1>Build</h1>
<form name="buildForm" id="buildForm" method="POST">
<select name="buildID" class="buildClass">
<option value="0" selected="selected" data-skip="1">Build a Structure</option>
<?php foreach ($structures as $structure_info): ?>
<option name='<?php echo $structure_info['str_name'] ?>' value='<?php echo $structure_info['str_id'] ?>' data-icon='<?php echo $structure_info['str_imageloc'] ?>' data-html-text='<?php echo $structure_info['str_name'] ?><i>
<?php echo $structure_info['timebuildmins'] ?> minutes<br><?php echo $structure_info['buy_gold'] ?> gold</i>'><?php echo $structure_info['str_name'] ?></option>
<?php endforeach ?>
</select>
<div id="buildSubmit">
<input id ="btnSubmit" class="button" type="submit" value="Submit"/>
</div>
</form>
</div>
Вот мой файл .js:
$(".button").click(function(e){
e.preventDefault();
$.ajax({
type: "POST",
url: "<?php $this->structure_model->insert_build($user_id) ?>", //the script to call to get data
data: "", //you can insert url arguments here to pass to api.php
//for example "id=5&parent=6"
dataType: 'json', //data format
success: function(data) //on receive of reply
{
alert("success!");
}
});
});
Я почти уверен, что знаю проблему: structure_model->insert_build($user_id) ?>
не работает, когда он находится вне поля зрения. Хотя я не знаю альтернативы.
Я исключил заголовочный файл. Я подтвердил, что файл .js действительно направлен по правильному пути.
Может кто-нибудь объяснить, как это сделать? Спасибо!